2011-02-17 31 views
1

我們的數據庫調用了模板,例如與參加會議的某個人羣一起使用會議模板以及基本會議名稱。會議可以「實例化」,以便您可以製作該會議的副本並修改屬性。我能想到這樣做的最好的方法是:數據庫設計 - 存儲模板和實例的最佳方式

  1. 店的「實例」在同一個表和存儲相關的信息與此類似。
  2. 製作具有相同屬性的不同表格,並將模板存儲在一個表格中,將「實例」存儲在另一個表格中。

回答

1

如何使用一個表,但添加一個像「isTemplate」標誌字段到表中,這將用於標識記錄作爲默認或'模板'記錄。

您創建一個具有默認參數的新記錄,並將isTemplate設置爲「1」或TRUE或YES或其他。

當創建一個新的會議,然後就創建作爲模板的副本,就像這樣:

INSERT INTO meetings(place,people,time) 
(SELECT place,people,time FROM meetings WHERE isTemplate = '1') 

如果你有多個模板,那麼你會得到的可用模板的列表:

SELECT * FROM meetings WHERE isTemplate = '1' 

,然後通過主鍵而不是「isTemplate」實例的那些模板之一:

INSERT INTO meetings(place,people,time) 
(SELECT place,people,time FROM meetings WHERE ID = 'xxxx') 
2

我會將模板存儲在一個單獨的表中,該表反映實例表中的必要列。這樣,在查找特定類型的數據時,不需要在任何位置放置特殊邏輯來過濾掉其中一個或另一個類型(模板或實例)。如果將來需要將模板放在另一個表中,則可以將更多元數據添加到模板中。

相關問題