gpt4 book ai didi

mysql - 评论的实现,对此有什么最佳实践吗?

转载 作者:行者123 更新时间:2023-11-29 04:31:23 27 4
gpt4 key购买 nike

好吧,我需要在自定义编码的社交网站上实现评论功能。评论需要在视频、图片、相册等类似facebook的各种页面上实现。

实现这个的最佳实践是什么?

用这样的字段制作一个全局评论表,并根据评论类型在所需页面上抓取评论。

commentid int(10)
userid int(10)
comment_type ENUM('video','picture')
comment varchat(200)
parent int(10)

或者为每个评论制作单独的表格?

最佳答案

我不会那样做的。我会在另一边使用子类型。

  • 创建一个名为(例如)Content 的父表;
  • 视频、图片、相册等是内容的子实体;
  • 评论有一个外键 Content ID。

实现子类型的三种基本方案:

  1. 为每个子类型创建一个单独的表;
  2. 创建一个名为 Content 的表,以及从属表 Video、Album 等,外键为 Conent ID。 Content 表还有一个 Content Type 字段来指示哪个表与该记录相关;或
  3. 将所有内容放入一个名为 Content 的表中,该表具有一组可选(可为 null)的列来涵盖子类型。当存储特定于子类型的信息所需的列几乎没有差异时,这是最合适的。

如果您将 Comment 关联回 Video 或 Album 表,您就有了所谓的 exclusive arc。这不是数据建模的推荐做法。

编辑:例如:

  • 用户(id、用户名、名字、姓氏、电子邮件地址)
  • 内容(id、content_type、submitter_id、submitted_date);
  • 图片(id、url、高度、宽度);
  • 视频(id、url、格式、高度、宽度、长度);
  • 相册(id,名称);
  • 相册照片(id、album_id、photo_id);
  • 评论(id、author_id、comment_date、comment、content_id);

一些注意事项:

  • submitter_id 和 author_id 是 User.id 的外键;
  • Image.id、Video.id、Album.id都是Content.id的外键;
  • Content.content_type 为“图片”、“视频”或“相册”之一;
  • 相册由存储在图像中的多张照片组成;
  • 连接表 Album Photos 将相册链接到 Images(多对多关系);

希望一切都过去了。

关于mysql - 评论的实现,对此有什么最佳实践吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1854356/

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