douchuo9476 2018-01-30 04:16
浏览 39
已采纳

如何多次添加多个用户

I want to make 1 user and be able to add multiple images for this user. I'm thinking about adding content_group for using GROUP UP. Is this the correct database structure?

USER

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

CONTENT

|---------------------|------------------|------------------|
|         id .        |      user_id     |      picture     | content_group
|---------------------|------------------|------------------|
|          1          |          1       |       1 .jpg     | xxxxxx
|---------------------|------------------|------------------|
|          2          |          1       |       2 .jpg     | yyyyyy
|---------------------|------------------|------------------|
  • 写回答

1条回答 默认 最新

  • ds753947 2018-01-30 06:35
    关注

    This looks reasonably well. If you are adding 'content groups', you should continue the same pattern though.

    I think I would expect your data model to look a little bit more like this. I renamed some fields. This is super subjective, but this is how I'd probably expect the fields to be called.

    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)
    );
    

    You might want to add some foreign keys, but it's ultimately optional. Not everyone uses them in MySQL.

    The above data-model assumes that categories are shared. If categories belong to specific users, then that table should also get a user_id field.

    Furthermore, if categories are per-user and a category is required to exist for every item in content, it means that the user_id field is not needed in the content table, because you can find it through the categories table.

    So here's an alternative where categories are per-user and required:

    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)
    );
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀