如何多次添加多个用户

时间:2018-01-30 04:16:14

标签: php mysql

我想创建1个用户,并且能够为该用户添加多个图像。我正在考虑添加content_group以使用GROUP UP。这是正确的数据库结构吗?

USER

|---------------------|------------------|
|          id         |       name       |
|---------------------|------------------|
|          1          |    TESTNAME      |
|---------------------|------------------|

CONTENT

|---------------------|------------------|------------------|
|         id .        |      user_id     |      picture     | content_group
|---------------------|------------------|------------------|
|          1          |          1       |       1 .jpg     | xxxxxx
|---------------------|------------------|------------------|
|          2          |          1       |       2 .jpg     | yyyyyy
|---------------------|------------------|------------------|

1 个答案:

答案 0 :(得分:1)

这看起来相当不错。如果要添加“内容组”,则应该继续使用相同的模式。

我想我希望你的数据模型看起来更像这样。我重命名了一些字段。这是超主观的,但这就是我可能期望调用字段的方式。

CREATE TABLE user (
   id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
   name VARCHAR(50)
);

CREATE TABLE content (
   id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT
   user_id INT UNSIGNED NOT NULL,
   image_filename VARCHAR(50),
   category_id INT UNSIGNED
);

CREATE TABLE content_category (
   id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,      
   name VARCHAR(50)
);

您可能想要添加一些外键,但它最终是可选的。不是每个人都在MySQL中使用它们。

上述数据模型假设共享类别。如果类别属于特定用户,则该表还应获得user_id字段。

此外,如果类别是每个用户,并且content中的每个项都需要存在类别,则表示user_id表中不需要content字段,因为你可以通过类别表找到它。

所以这里有一个替代方案,其中类别是每用户和所需的:

CREATE TABLE user (
   id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
   name VARCHAR(50)
);

CREATE TABLE content (
   id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT
   image_filename VARCHAR(50),
   category_id INT UNSIGNED NOT NULL
);

CREATE TABLE content_category (
   id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,  
   user_id INT UNSIGNED NOT NULL,    
   name VARCHAR(50)
);