我正在创建一个允许人们制作列表的网站,但我不确定存储这些列表的最佳方式。我应该为每个用户创建一个新表,还是一个坏主意?每个列表都会有几列。
提前致谢
编辑:每个用户将是一个列表,但如果它几乎相同,我可能会将其列为多个列表,以便将来提供更多选项。每个列表将包含项目,优先级,可能还有另外一列或两列。用户可以从列表中添加,编辑和删除项目,并将其设为私有或公开。
答案 0 :(得分:3)
正如红色过滤器所指出的那样,您应该将信息分成多个表格。您的结构取决于您希望在列表中存储的内容,以及用户应如何与列表进行交互。一个用户是否应该查看其他用户列表?有多个名单?
例如,此结构允许用户拥有多个列表,每个列表都有多个项目:
list
list_id
list_name
creator (user_id)
list_items
list_id
item
user_list
user_id
list_id
答案 1 :(得分:2)
是的,为每个用户创建一个新表是个坏主意。而是在UserID
表格中添加List
列。
然后你可以获得这样的给定用户列表:
select ListID, Name
from List
where UserID = 42 --example UserID
如果列表具有相同的架构,那么您可以使用ListValues
列创建一个ListID
表,该列是FK
表的List
,其中你需要的列。如果每个用户都可以创建自己的列,那么您可能希望实现Entity Attribute Value模型。
答案 2 :(得分:1)
糟糕的是,你的列表应该像下面这样。
id list user_id