小编TJ *_*ntz的帖子

关于中间可选模型的基本数据库设计

我正在开展一个项目,在这个项目中我遇到了一个看似非常简单的场景设计的困难:

user属于citycountry,然而,city参考可以是null同时user必须属于一个country仍然.换句话说(在基本的 RoR模型语法中),

# class User < ActiveRecord::Base 
belongs_to :city
belongs_to :country
validates_existence_of :country

# class City < ActiveRecord::Base
has_many :users
belongs_to :country
validates_existence_of :country

# class Country < ActiveRecord::Base
has_many :users
has_many :cities    
Run Code Online (Sandbox Code Playgroud)

我这个超级简单设计的问题在于冗余太多了.一旦a city被a 引用user,country引用就可以从它推断出来(换句话说,因为它已经在city表中引用,所以在表中引用它似乎并不那么令人敬畏user).

sql database database-design ruby-on-rails

4
推荐指数
1
解决办法
236
查看次数

标签 统计

database ×1

database-design ×1

ruby-on-rails ×1

sql ×1