I am trying to produce a database system where customers can make lists, as well as their buddies (they allow list use of) can increase the list.

I am attempting to pre-plan this schema and should not decide between your following:

List Table With characteristics: listid, entry-number, entry, user-id

Where listid may be the list being transformed, entry-number is the amount of that entry within the list (therefore the first item in a listing is entry ), entry may be the entry out there, and user-id may be the user who added the entry


Specific List Table in which a specific table is perfect for each list with characteristics entry-number, entry, user-id

It appears such as the second option causes it to be much simpler to obtain information/change a listing after we discover the table, whereas the first is a lot simpler to know.

I am just engaging in databases so I wish to select the schema properly.


The very first choice is more maintainable and normalised. It might be simpler to question this method and make programs which use their email list.

From what I can tell, you ought to have two tables. One which holds user information and something that holds list information. Customers may have userID (PK) as well as your List table might have listID (PK) along with a userID as FK to reference which user their email list goes to. So yeah, the first choice :) GL

For instance:

userID(PK) | username | etc
1 | Bob | etc
2 | Nick | etc

listID(PK) | userID(FK) | date_entered | entry
1 | 2 | 1/2/2011 | blah blah
2 | 2 | 2/1/2011 | blah blah
3 | 1 | 2/3/2011 | blah blah
4 | 2 | 2/6/2011 | blah blah
5 | 1 | 3/1/2011 | blah blah

//you should know the userID for the user you are looking up list info for (C#)
query = "select * from Lists where userID = " + userID.ToString() + " ORDER BY date_entered DESC";