在Rails的導的表,我很困惑過爲什麼has_one
和has_many
表是相同的:混淆了對HAS_ONE和的has_many
customers(id,name)
orders(id,customer_id,order_date)
Example tables for has_one
: 這些在數據庫層面,表還將允許供應商擁有多個帳戶,但我們只需要每個供應商一個帳戶
suppliers(id,name)
accounts(id,supplier_id,account_number) #Foreign Key to supplier here??
不應該爲has_one
的表是這樣的,而不是:
suppliers(id,name,account_id) #Foreign Key to account here
accounts(id,account_number)
現在因爲account_id
是在供應商表,供應商不能有一個以上的賬戶。
Rails指南中的例子不正確嗎?
或者,Rails是否使用has_many
類方法,但限制了many
部分的發生?
謝謝!這給了我一些思考的食物。所以,Rails基本上強制has_one中的「one」。我想知道,這是「安全」的。假定只有一個Rails應用程序將使用數據庫,它應該沒問題。 – Zabba 2010-10-17 06:44:55
Rails的關鍵指導原則之一是它專爲應用程序數據庫而非集成數據庫而設計。這就是爲什麼在應用程序級別而不是數據庫級別執行約束的原因。它驅動DBA堅果:) – 2010-10-17 17:28:41