繁体   English   中英

在某些情况下SQL表的命名约定

[英]Naming convention for SQL tables under certain circumstances

我目前正在为一个新的Rails项目创建数据库架构,我想做对的事情,所以我最好问一下!

想象一下:我有一个名为“ articles ”的表,并且这些文章应具有标签。 我现在要做的事情相对简单。 创建另一个名为“ 标签 ”的表,以及第三个名为“ article_tags ”的表。 每个文章和标签都有唯一的ID,而“ article_tags ”是将正确的文章ID和标签ID汇集在一起​​的映射表。

表格:

- articles
- tags
- article_tags (mapping)

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

表格:

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

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

您是否有任何(一般)技巧来改进这些表的命名 ,因为您在上面看到的内容并不会让我感到非常高兴...

我认为您可以使用多态关联来执行此操作,如下所示:

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个表:用户,文章,标签,标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM