如何解决如何在MySQL中构造列表?
| 我正在创建一个网站,部分功能是用户可以创建列表。每个用户只能有一个列表,每个列表只有一个用户。每个列表也都有一堆项目。项目可以在多个列表中使用。 因此,假设我有以下表格: 用户数 清单 物品 如何定义列表中的哪些项目?现在,我正在列表表中存储一串CSV \,但是我怀疑这是最好的方法。 谢谢!解决方法
通常,您将具有如下表定义:
create table user (
id int,name varchar,list_id int,/* optional */
etc.
)
create table list (
id int,owner_id int
etc.
)
create table item (
id int,etc.
)
create table item_x_list (
id int,item_id int
)
这样:
user -> list -> item_x_list -> item*
请注意,如果您不需要名称之类的列表特定数据,则可以完全跳过列表。
, 您将需要另一个具有两列的表Lists_Items
:
list_id
item_id
, 我会像这样构造它
用户数
用户ID(主密钥)
用户名
ListID(Lists.ListID的外键)
清单
ListID(主键)
列表名称
ListsToListItems
ListID(Lists.ListID的外键)
ListItemID(ListItems.ListItemID的外键)
ListItems
ListItemID(主键)
ListItemValue
, 根据您的限制,即一个用户只能有一个列表(或没有列表),而每个列表只能属于一个用户,我将这样做:
User
userid
username
Primary Key (userid)
List
listid
listname
Primary Key (listid)
Foreign Key (listid) References (User.userid)
ListItem
listid
itemid
Primary Key (listid,itemid)
Foreign Key (listid) References (List.listid)
Foreign Key (itemid) References (Item.itemid)
Item
itemid
description
Primary Key (itemid)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。