这是可以在Ruby on Rails的ActiveRecord模型关系中描述的关系吗?
Customer Address
=================== =========
Billing_Address_Id >------}
}---|- AddressId
Shipping_Address_Id >------}
这样我就可以得到如下数据:
地址:
Id | Addr | City | State | Zip |
================================================
1 | 123 Main | New York | NY | 99999 |
2 | 200 2nd Street | New York | NY | 99999 |
3 | 300 3rd Street | Albany | NY | 99998 |
4 | PO Box 4 | Albany | NY | 99998 |
顾客:
Id | Name | Billing_Address_Id | Shipping_Address_Id |
=======================================================
1 | Bob | 1 | 1 |
2 | Al | 2 | 1 |
3 | Joe | 3 | 4 |
我想将地址存储在自己的表中,因为数据可能会在客户之间共享(尤其是送货地址)。但是对于任何给定的客户,甚至只有两个地址。
除非没有其他方法,否则我想避免多对多的关系。
最佳答案
给定这样的表定义:
create_table :addresses do |t|
t.string :street
t.string :city
t.string :state
t.string :zip
t.timestamps
end
create_table :customers do |t|
t.string :name
t.references :shipping_address
t.references :billing_address
t.timestamps
end
您可以将帐单和送货地址与您的客户相关联,如下所示:
class Customer < ActiveRecord::Base
belongs_to :shipping_address, :class_name => "Address"
belongs_to :billing_address, :class_name => "Address"
end
关于ruby-on-rails - 可以在Ruby on Rails中描述这种关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1734767/