我需要一个小帮助来制作一个mysql数据库结构
我正在创建一个网站,我将用户和卡通人物作为两个主要实体
用户可以喜欢尽可能多的卡通人物,并且n个用户可以喜欢卡通人物。
我的疑问是,在users表中会有一个名为Cartoon的字段,这将包含一个卡通人物ID,但如果用户喜欢很多字符,那我该如何存储呢?
这是我的第一个数据库结构,所以请帮帮我
答案 0 :(得分:1)
最常见的方法是使用单独的关系表,即
create table users_cartoons (user_id int, cartoon_id int)
并存储用户和漫画之间的所有关系。
答案 1 :(得分:1)
您需要三个表:Users表,Cartoons表和UsersCartoons表。
用户拥有您的所有用户(ID,用户名等)。漫画中包含所有漫画(每个漫画的ID,以及您想要存储的其他任何属性)。
然后UsersCartoons表有一个user_id字段和一个cartoon_id字段。您可以根据需要为该表添加任意数量的行,因此n个用户可以喜欢每个卡通,反之亦然。
答案 2 :(得分:1)
这是我可能会使用的结构的简化版本。
我发现维护一个描述其中数据的表的数据库更好,而不是像user_cartoon
那样,这通常是一个非常模糊的表示。
`user`
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
+-------+---------+------+-----+---------+----------------+
`cartoon_character`
user_id denotes the creator or owner
+---------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_id | int(11) | NO | | NULL | |
+---------+---------+------+-----+---------+----------------+
`cartoon_character_like`
+----------------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+---------+------+-----+---------+-------+
| cartoon_character_id | int(11) | NO | PRI | NULL | |
| user_id | int(11) | NO | PRI | NULL | |
+----------------------+---------+------+-----+---------+-------+