我有一个属于类别和级别的主题模型。
知道每个主题属于最大5-6级和2-3个类别,每个主题的类别ID和级别ID可以使用数组:PostgreSQL的真值存储在2列中,或者这样做是不好的做法吗?
最佳答案
关系对你有用吗?
class Topic
has_and_belongs_to_many :levels
has_and_belongs_to_many :categories
end
class Category
has_and_belongs_to_many :topics
end
class Level
has_and_belongs_to_many :topics
end
create_table :categories_topics do |t|
t.integer :topic_id
t.integer :category_id
end
create_table :levels_topics do |t|
t.integer :level_id
t.integer :topic_id
end
这将使结构看起来像:
|--------| |--------------|
| Topics | ---> | LevelsTopics |
|--------| |--------------|
^
|--------| |
| Levels | ---------|
|--------|
|--------| |-------------------|
| Topics | ---> | CategoriesTopics |
|--------| |-------------------|
^
|------------| |
| Categories | ---------|
|------------|
这样,每个主题只有一行,每个级别只有一行,每个类别只有一行。关系逻辑将包含在一个新表中,因此所有内容都保持干燥。
阅读更多关于has_and_belongs_to_many
关于ruby-on-rails - Rails 4 Emirates_To将ID存储在数组列中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34277592/