我需要一个小帮助在做一个mysql数据库结构
我正在做一个网站,在那里我将有用户和卡通人物作为两个主要实体。
一个用户可以喜欢尽可能多的卡通人物,一个卡通人物可以被n个用户点赞。
我的疑问是,在users表中将有一个名为Cartoon的字段,这将包含一个卡通角色ID,但如果用户喜欢许多角色,那么我如何存储它?
这是我的第一个数据库结构,所以请帮助我
发布于 2012-03-11 20:10:49
最常见的方法是使用单独的关系表,即
create table users_cartoons (user_id int, cartoon_id int)并在那里存储用户和卡通之间的所有关系。
发布于 2012-03-11 20:12:06
您需要三个表:一个Users表、一个Cartoons表和一个UsersCartoons表。
Users拥有您所有的用户(id、用户名等)。卡通拥有所有的卡通(每个卡通有一个id,以及您想要存储的任何其他属性)。
则UsersCartoons表具有user_id字段和cartoon_id字段。您可以向该表添加任意多的行,以便n个用户可以喜欢每个卡通,反之亦然。
发布于 2012-03-11 20:26:24
这是我可能使用的结构的简化版本。
我发现维护一个描述其中数据的表的数据库会更好,而不是像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 | |
+----------------------+---------+------+-----+---------+-------+https://stackoverflow.com/questions/9654782
复制相似问题