Since you're using Postgres, you want to normalize your tables. What normalization means, in a sentence, is that your columns are represented by the key, the whole key, and nothing but the key. Normalization can be a three-step process, but I'm just going to show the final result.
Generally, in a database, table names are singular. User, Collection, Item. Also, it's less confusing to name your ID fields with the table name. It makes join SQL easier to read.
So let's start with the User table.
User
----
User ID
User Name
User Email
...
So far, so good. All of the columns have to do with a user.
Next, let's look at Collection
Collection
----------
Collection ID
Collection Name
Owner ID
So far, so good. The Owner ID is the User ID of the owner of the collection.
Next, let's look at Item.
Item
----
Item ID
Item Name
Item Description
...
So far, so good. All of the columns have to do with an item.
Now, let's look at the relationship between Collection and Item you described in problem 1. A Collection can have one or more items. An Item can be in one or more collections.
When you have a many-to-many relationship, you create a junction table. So let's create a CollectionItem junction table.
CollectionItem
--------------
CollectionItem ID
Collection ID
Item ID
CollectionItem timestamp
CollectionItem contributor ID
Where CollectionItem ID is the primary clustering key. You also have a unique index on (Collection ID, Item ID), so you can pull the collection together. You can also have a unique index on (Item ID, Collection ID), so you can see which items are in multiple collections.
You also have a unique index on (Collection ID, CollectionItem contributor ID). This allows you to see which contributor (user) contributed the item to the collection. This user ID could be the owner ID from the collections row or a different contributor.
Looking at problem 2, we need a Vote table. The Vote table is another junction table connecting a collection, item, and voter (user).
Vote
----
Vote ID
Collection ID
Item ID
Voter ID
Vote timestamp
Where Vote ID is the primary clustering key, and you have a unique index on (Collection ID, Item ID, Voter ID). You may also have two other unique indexes, depending on whether or not you want to group the votes by voter or item.
Edited to add:
You also need some kind of Permission table.
Permission
----------
Permission ID
Owner ID
Contributor ID
Where Permission ID is the primary clustering key and you have a unique index on (Owner ID, Contributor ID). You can also have a Permission Type, which you haven't defined, so I can't add it to the Permission table. The Permission Type would also be a part of the unique index.
I hope this explanation has been helpful.