gpt4 book ai didi

database-design - 需要数据库设计方面的帮助

转载 作者:行者123 更新时间:2023-12-02 08:55:03 25 4
gpt4 key购买 nike

我正在构建一个基本的照片上传系统,其工作原理如下:

  1. 用户通过提供非常基本的信息(唯一的用户名、电子邮件地址和密码)进行注册。
  2. 注册用户可以上传带有标题和标签的照片(照片名称、目录、标签和标题保存在数据库中)。
  3. 任何注册用户都可以对照片添加评论。
  4. 我应该能够检索用户名的所有标签(他在所有上传的照片上使用的标签)。

我需要一些数据库设计方面的帮助。我制作了以下 4 个表格,但我不确定设计是否正确。(以下所有表中,id均为自增主键)。

1: Users (id, Username, email, password)
2: Photo (id, username, photo_name, photo_directory)
3: Tags (id, Photo_id, username, Tag)
4: Comments(id, photo_id, comment_author, comment_text, time)

非常感谢您的时间和帮助。

最佳答案

我认为标签和照片关联应该是不同的关联表(如果我正确理解了标签的含义。)

用户可以创建标签并将其关联到多张照片。所以,你可能应该有..

Photo (photo_id, User_id, photo_name, photo_directory)
Tags (tag_id, Tag_name, tag_desc, tag_attribute1)
photo_tag_asc (photo_id, tag_id).

这样,您只需定义一次标签即可避免重复。如果您想要良好的关系设计,这会更准确。

此外,由于第一列是主键,我建议使用像 photo_id、tag_id 这样的列名称,而不仅仅是“id”。我知道它们会有表名前缀,但是在查询中查看每个列名的表名并不是很整齐。

select p.photo_id, u.user_id
from photo p, user u
where p.user_id = u.user_id

更容易阅读
select p.id, u.id
from photo p,
users u
where u.id = p.user_id

关于database-design - 需要数据库设计方面的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5570709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com