我正在尝试创建一个用户可以创建列表的数据库系统,他们的朋友(他们允许列表访问)可以添加到列表中。
我正在尝试绘制此架构,但无法决定以下内容:
列表 有了属性: listid,entry-number,entry,user-id
如果listid是要更改的列表,则entry-number是列表中该条目的编号(因此列表中的第一项是条目0),条目是列表中的条目,user-id是添加条目的用户
VS
特定列表 其中为具有属性的每个列表创建特定表 entry-number,entry,user-id
似乎第二个选项使我们在找到表格后更容易获取信息/更改列表,而第一个选项更容易理解。
我刚刚进入数据库,所以我想正确选择架构。
谢谢!
答案 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";