簡體   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