gpt4 book ai didi

database - 如何制作像 stackoverflow.com 这样的标签系统?

转载 作者:太空狗 更新时间:2023-10-30 01:50:50 30 4
gpt4 key购买 nike

我打算制作一个网站来张贴标签。标签最多可以有五个标签,如 stackoverflow.com。

谁能说说StackOverflow的标签系统?带post和tag的关系型数据库系统。

我应该在帖子表中添加一列还是应该为其创建单独的标签表?标签可以用空格或逗号分隔。

最佳答案

一定要创建一个包含可用标签列表的表格。

您还应该创建一个单独的应用标签表,其中包含:

  • 您帖子的外键。
  • 您的标签的外键。
  • 序号显示订单。
  • 您可能感兴趣的任何其他内容,例如谁添加标签或添加标签的时间。

您想要使用规范化设计,因为如果您想要更改业务规则以允许更少或更多标签,那么使用非规范化设计(添加 5 列)将会失败。此外,如果您还有其他信息要保留,例如添加标签的时间和添加者,它也无济于事。


编辑:DDL

应 OP 的要求:

CREATE TABLE post (
id INTEGER IDENTITY
, title VARCHAR(1000) NOT NULL
, added_date DATETIME NOT NULL
, posting_user_id INTEGER NOT NULL
, ... (and so forth) ...
, PRIMARY KEY (id)
, FOREIGN KEY (posting_user_id) REFERENCES posting_user (id)
);

CREATE TABLE tag (
id INTEGER IDENTITY
, term VARCHAR(20) NOT NULL
, description VARCHAR(1000) NULL
, ... (and so forth) ....
, PRIMARY KEY (id)
);

CREATE TABLE applied_tag (
post_id INTEGER NOT NULL
, tag_id INTEGER NOT NULL
, display_order INTEGER NOT NULL
, tagging_user INTEGER NOT NULL
, applied_date DATETIME NOT NULL
, ... (anything else you want)....
, PRIMARY KEY (post_id, tag_id_, display_order) -- Or use an auto-increment, but this is unique.
, FOREIGN KEY (post_id) REFERENCES post (id)
, FOREIGN KEY (tag_id) REFERENCES tag (id)
, FOREIGN KEY (tagging_user) REFERENCES posting_user (id)
);

关于database - 如何制作像 stackoverflow.com 这样的标签系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9242540/

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