gpt4 book ai didi

mysql - 特定情况下SQL表的命名约定

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

我目前正在为一个新的 Rails 项目创建数据库架构,我希望一切顺利,所以我最好询问一下!

想象一下:我有一个名为“文章”的表,这些文章应该有标签。我现在要做的事情相对简单。创建另一个名为“tags”的表和第三个名为“article_tags”的表。每篇文章和标签都有一个唯一的 ID,“article_tags”是将正确的文章 ID 和标签 ID 组合在一起的映射表。

表格:

- articles
- tags
- article_tags (mapping)

我目前遇到的“问题”是这样的:不仅文章有标签,而且我的“用户”(另一个表)也有。这些标签必须位于两个不同的表中,这会导致一些非常奇怪的命名。

表格:

- articles
- article_tags (no mapping)
- article_article_tags (mapping???)

- users
- user_tags (no mapping)
- user_user_tags (mapping???)

您对如何改进这些表的命名有任何(一般)提示吗,因为您在上面看到的内容并不让我很高兴...

最佳答案

我认为你可以使用polymorphic association要做到这一点,像这样:

class User
has_many :taggings, as: :taggable
has_many :tags, through: :taggings
end

class Article
has_many :taggings, as: :taggable
has_many :tags, through: :taggings
end

class Tagging
belongs_to :taggable, polymorphic: true
belongs_to :tag
end

class Tag
end

所以你只需要 4 个表:用户、文章、标签、标签。

关于mysql - 特定情况下SQL表的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41402811/

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