2012-10-04 35 views
0

我正在重新設計名爲「項目結算」的產品的數據庫。我無法提供表名。在舊數據庫中,這些名字超級晦澀(PRB_PROJ_LVL),所以舊的沒有幫助。數據庫很小 - 大約10桌 - 但會隨着時間的推移而增長。通過表名顯示錶層次結構

這裏的問題 - Projects是一個實體(和表),但這個詞也被用作一個預測。示例

  • Project - 包含項目的表。
  • ProjectTask - 一個包含項目任務的表;這是Projects的孩子。
  • ProjectTemplate - 項目模板的表格,它是而不是Projects的子項。項目模板只是作爲創建一堆ProjectTasks的模型。

那麼,我該如何顯示ProjectTaskProject的孩子,但ProjectTemplate是不是?一如既往地感謝。

+0

真正的**關係**模型很難適用於層次結構。或者稍後保留在此層次結構中。你應該堅持最簡單的語義,比如「project_template」。 –

回答

2

您的架構及其預期用途的內部文檔是執行此操作的更好方法之一。僅依靠命名約定總是會給解釋帶來可能 - 明確的定義不會這樣做。也就是說,我們已經定義了一些旨在用作模型的對象(您的案例中的模板)。這些模型對象不會被生產應用程序使用或直接操作,隨着時間的推移,新對象將基於修改後的模型而變化。我們嘗試應用自描述性的一種方式是引入模式。因爲我們有不同的部門,可以利用相同的模型對象,我們不得不沿着東西線(調整到適用於您的問題而不承擔太多):

[dept_X] [項目]

。 [dept_X] [project_tasks]

而對於模板,它們從來沒有直接使用由應用程序或用戶(每說):

[模型] [項目]

[模型] [。 project_tasks]

作爲我們開發人員的編程參考,模式定義腳本包含描述對象關係的文檔(就像內部通過外鍵執行的對象一樣)。作爲附加措施,將爲按項目排序的所有新對象生成wiki文章。在這個新系統之前存在的對象(我的入職)會在他們被修改或時間允許的時候得到記錄。