陷入数据库结构化

时间:2012-03-11 12:08:18

标签: mysql database

我需要一个小帮助来制作一个mysql数据库结构

我正在创建一个网站,我将用户和卡通人物作为两个主要实体

用户可以喜欢尽可能多的卡通人物,并且n个用户可以喜欢卡通人物。

我的疑问是,在users表中会有一个名为Cartoon的字段,这将包含一个卡通人物ID,但如果用户喜欢很多字符,那我该如何存储呢?

这是我的第一个数据库结构,所以请帮帮我

3 个答案:

答案 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    |       |
+----------------------+---------+------+-----+---------+-------+