我的“列表”的一个大型数据库表或每个“列表”的新表

时间:2011-04-29 23:41:22

标签: database schema

我正在尝试创建一个用户可以创建列表的数据库系统,他们的朋友(他们允许列表访问)可以添加到列表中。

我正在尝试绘制此架构,但无法决定以下内容:

列表 有了属性: listid,entry-number,entry,user-id

如果listid是要更改的列表,则entry-number是列表中该条目的编号(因此列表中的第一项是条目0),条目是列表中的条目,user-id是添加条目的用户

VS

特定列表 其中为具有属性的每个列表创建特定表 entry-number,entry,user-id

似乎第二个选项使我们在找到表格后更容易获取信息/更改列表,而第一个选项更容易理解。

我刚刚进入数据库,所以我想正确选择架构。

谢谢!

2 个答案:

答案 0 :(得分:1)

第一个选项更易于维护和规范化。查询此选项并创建使用该列表的应用程序会更容易。

答案 1 :(得分:1)

从我所看到的,你应该有两张桌子。一个保存用户信息,一个保存列表信息。 用户将拥有userID(PK)并且您的List表将具有listID(PK)并且userID为FK以引用该列表所属的用户。所以,是的,你的第一选择:) GL

例如:

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


Lists
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";