2011-05-21 79 views
2

我創建的結構,可以是不同類型的數據庫。每種類型都有一組獨特的屬性,如材料,形狀,與結構類型相關的屬性。關係數據庫結構中存儲的獨特屬性SubCatagories

例如,這樣的結構是,其可以具有用於甲板跨度長度和材料類型的橋。

的結構的另一個實例將是其中具有高度和材料的類型和厚度的壁。

我不想生成一個包含所有可能的屬性有許多種可能存在的結構和屬性是靈活的,有無數的屬性來存儲一個平坦的桌面。

基本上我們想通過在每個結構類型的單獨表中存儲唯一的屬性數據來防止記錄變得太大,但我想不出一種方法來將通用結構表簡單地指向屬性表。該搜索

==================== 編輯,

現在「泛化專業化關係建模」看來,我想數據模型作爲具有父類「結構」的面向對象結構,其具有子類,其繼承共同信息作爲橋結構,牆結構。唯一的問題是現在,我想幫助一個工程師做一個簡單的獨立的Access 2010數據庫,但現在看來,我是正確的生成與父類的是孩子的主鍵和外鍵的主鍵訪問中的關係類。這似乎在Access 2010中導致出現問題,它希望父級的實例包含每個無意義的子類中的一個。

基本上我有,

StructureID如在兩個結構中,在橋和壁表橋,和壁表它們的主鍵這是structureID鏈接回到結構表的主鍵。我對Access 2010不太熟悉,不知道爲什麼它不起作用。

從IBM的報紙之一,

"Figure 8. Mapping all classes of the extended hierarchy to data entities"

基本上想使這個在Access 2010中

+0

您可能需要添加鑑別器列'PersonType'和'ProfessorType'。看到一個例子http://stackoverflow.com/questions/3350489/how-to-design-the-relations-between-user-and-favoriteor-like-models-in-db/3352399#3352399 – 2011-05-21 14:01:21

回答

0

我建議試圖儘可能多地可以分割成結構不同的表。
您還可以與所有的結構和它們的共同特性的主表。

另一種方法是對XML類型的列,它可以是任何XML一樣靈活,也可以應用模式來執行數據的完整性。

你基本上需要這兩個選項之間進行平衡。

數據庫設計也取決於你的DBMS的功能。例如,並非所有的數據庫都支持XML類型。

[編輯]

表結構可能是這樣的:

結構

  • 標識 - 自動生成PK
  • 名稱
  • 類型
  • 顏色

  • 編號
  • StructreId引用結構(同上)
  • 長度
  • MaterialType

  • 編號
  • StructreId引用結構(同上)
  • 身高
  • Thikness
  • MaterialType
+0

我已經只有普通關於通用表的信息其他表具有不同的唯一數據集。然而,我很難找到一種方法來鏈接這些表,而不使用某種平面鏈接表,這種平面鏈表只有一個結構不是特定類型的空值。 – Roo 2011-05-21 04:24:03

+0

@Roo - 更新了答案。我希望我能正確理解你。 – 2011-05-21 04:30:49

0

你的情況看起來像根規格的設計模式的一個實例。如何設計關係表以反映gen-spec的問題已經提出。

See one thread

+0

感謝問題的名稱,我無法找到正確的方式來搜索此問題。 Gen-Spec術語帶來了許多與我的問題有關的有用信息。 – Roo 2011-05-21 04:46:25

0

我想你可能在Access中設置依賴的方式上犯了一個小錯誤。似乎你有一對一的地方,你需要一對一或者一對一的。