2016-10-29 39 views
0

假設您正在爲您的數據庫使用postgresql構建rails應用程序。您有一個產品模型,每個產品都有一些可以用字符串數組表示的說明,可以在產品模型中作爲屬性或以某種形式作爲自己的模型。以下三個選項中的哪一個是「最好的」?Rails/ActiveRecord領域建模 - 將產品說明作爲一個屬性或他們自己的模型?

table "products" 
    t.string "title" 
    t.text "directions", array: true 

# or 

table "products" 
    t.string "title" 

table "directions" 
    t.integer "product_id" 
    t.text "content", array: true 

# or 

table "products" 
    t.string "title" 

table "directions" 
    t.integer "product_id" 
    t.integer "step" 
    t.text "content" 

我已經得到了這個工作正常使用選項第一,但不知道它是否會在後面的道路上創建頭痛。

回答

0

建議在您的示例中使用選項#3。原因有以下幾點:

1)最好在開始編寫應用程序時保持簡單,因爲數據模型不斷變化,您可能需要您的directions表可獨立查詢且易於變更。

2)更方便地訪問關聯模型(@product.directions)(@direction.product)

+0

謝謝。是的,這聽起來很合理。我試圖讓方向變成食譜屬性的唯一原因是,這很可能不會被任何其他模型使用或訪問。但我並不確定,不管選項3是否具有最大的靈活性。 – TDB

相關問題