我在Rails中有两个表:
CURRENCIES: ------------- | id | name | ------------- | 1 | USD | | 2 | EUR | -------------
ITEMS: ---------------------------------------- | id | name | price | currency_id | ---------------------------------------- | 1 | product a | 100 | 1 | | 2 | product b | 20 | 2 | | 3 | product c | 60 | 2 | | 4 | product d | NULL | NULL | ----------------------------------------
允许ITEMS.price
和ITEMS.currency_id
允许NULL
,但ITEMS.currency_id
时必须设置ITEMS.price != NULL
。
这些表之间的关系如何?
答案 0 :(得分:0)
这就是你应该如何在RoR中实现一对一的关系:
class Item < ActiveRecord::Base
has_one :currency
end
根据您的DBMS,您可以添加检查约束,以便price
和currency_id
必须为空或两者都必须为值。
在我看来,你可以把它放在另一张桌子里
PRICES
---------------------------
| id | value | currency_id |
---------------------------
| 1 | 100 | 1 |
| 2 | 200 | 2 |
---------------------------