gpt4 book ai didi

mysql - 1-多-多的数据库结构

转载 作者:行者123 更新时间:2023-11-29 09:12:38 25 4
gpt4 key购买 nike

我需要一些想法如何处理我正在开发的网站的数据库结构,我已经绞尽脑汁有一段时间了,以找出设计表以帮助其实现可扩展的最佳方法。以下是详细信息。

  • 列表:包含标题文本、发布日期和简单其他信息的单个帖子。将连接用户表以获取用户名。

  • 标签:每个列表可以有多个属于“类型”的标签示例:

    类型: Action 、超自然、喜剧

    制作人:Sunrise、Bones

  • 额外字段:每个列表也可以有额外字段示例:

    播出日期:2010 年 12 月 18 日

    时长:120 分钟

标准化的方式是这样的:

-- Listing_table(list_id、user_id、list_title、list_content、list_date)

-- Tags_table (tag_id, tag_type, tag_name, tag_slug)

-- Tags_Listing_table (list_id, tag_id)

-- Field_table (list_id, field_name, field_value)

这样的结构可以吗?另外,有效查询所有这些信息的最佳方法是什么?我认为根本不可能在一次查询中获得所有这些信息。我有什么选择?

此外,每个列表都会加载多个线程,并且这些线程内将包含多个帖子,所有帖子都在同一页面上,类似于:

[单页]

列表(标题、内容、标签、额外字段)

  • 主题 1
    • 帖子 1
    • 帖子 2
  • 主题 2
    • 帖子 1
    • 帖子 2

感谢所有提供帮助的人,我真的很感激你们所有人的见解。如果还有什么我可以添加来帮助您帮助我,请询问。我可以转储我的 SQL 结构。

最佳答案

无论您的目标是可扩展性还是性能,您几乎肯定会后悔:

-- Field_table (list_id, field_name, field_value)

部分具体原因请参见SQL Antipatterns Strike Back 。此结构从幻灯片 16 开始。另请阅读 Bad CaRMa ,这与可扩展性和性能有关。

关于mysql - 1-多-多的数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133655/

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