我的"列表"有一个大型数据库表,每个"列表"都有一个新表



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

我正试着画出这个模式,但不能在以下两者之间做出决定:

列表属性:Listid, entry-number, entry, user-id

其中listd是被修改的列表,entry-number是该列表中条目的编号(因此列表中的第一项是条目0),entry是列表中的条目,user-id是添加条目的用户

特定列表表在哪里为每个带有属性的列表创建一个特定的表

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

我刚刚进入数据库,所以我想正确地选择模式。

谢谢!

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

在我看来,您应该有两个表。一个保存用户信息,另一个保存列表信息。用户将具有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";

相关内容

最新更新