我正在设计一个用户可以列表的数据库。棘手的部分(对我来说)是每个用户都可以制作一个具有相同标题的列表,并在其上具有相似的项目。我的解决办法是这样的创建3个表:数据库设计缺陷?
User-
ID/
name/
email
Title-
ID/
name/
date/
userID [FK]
List-
ID/
userID [FK]/
titleID [FK]/
text
,我能想到的获取列表信息是查询user ID
与title ID
得到他们的具体名单(文字)为标题的最好方法。现在它不会让我将titleID
作为FK添加,因为它无法添加或更新子行,因此提出问题,是否有更好的方法来设置它以使查询更容易获取列表?
当你说他们可以拥有相同的标题时,概率是多少?如果这是一种非常常见的情况,那么标题的单独表格肯定会有助于冗余。 – 2012-01-05 00:28:06
你真的需要'Title'表吗?为什么不用'list',userID [FK],title,...''来创建'User'和'List'呢? – 2012-01-05 00:30:16
是的,这将是一个非常高的事件,这就是为什么我有标题表。并且用户也将拥有多个列表 – 2012-01-05 00:37:29