2009-10-15 52 views
2

我們有一個通用的數據庫模式,我們用於我們系統中的某些表格。主要原因是我們運行的是多租戶數據庫,因此並非所有用戶都需要相同的字段。但是,我不知道這種模式的「適當」名稱是什麼。該表格模式的專有名稱是什麼?

以下是對我們的一個表可能看起來像一個例子:

 
ClientID | SurveyID | AnswerKey | AnswerVal 
------------------------------------------- 
1  | 1  | Fname  | Fred 
1  | 1  | Lname  | Flintsone 
1  | 1  | Email  | [email protected] 
1  | 2  | Fname  | Mickey 
1  | 2  | Lname  | Mouse 
1  | 2  | Phone  | 555-3343 

我們一直在呼籲他們「垂直表」,但我不知道這是否是正確的。

+0

想了解一下! – mauris 2009-10-15 15:33:37

+0

維基百科頁面上的某處我再也找不到了,他們談論的是用於模擬醫療案例的數據庫設計,其中可能有許多可能的症狀字段,它看起來就像那樣。 – Kev 2009-10-15 15:42:18

回答

7

我可能會指是作爲一個鍵 - 值對錶

2

我稱這爲數據庫設計。 對不起,有點磨蝕,但這種設計聞起來像一個反模式。

+0

我同意你的看法,這類設計肯定有一些缺陷。幸運的是,我們並沒有將它用於一切,只是我們一些更抽象的數據存儲。 – 2009-10-15 16:07:54

0

對不起,但你可能想考慮規範化你的表...它可以導致可維護的代碼(並且更容易理解)。使用關係表的力量!

4

「這個表模式的正確名稱是什麼?」

廢話。

考慮你需要做些什麼來對電子郵件字段的AnswerValue施加某種類型的約束。

考慮在強制執行可能需要的「完整性」約束時需要付出的努力,這些約束要求某些指定的字段集合全部出現在某些調查中。考慮到生產單行所涉及的努力(我認爲它可以事先知道哪些列需要包含,因爲你知道你正在爲哪個用戶工作,因此你知道他感興趣的領域) 。

考慮參與保護,有沒有辦法讓任何用戶檢索或操縱任何他不感興趣的領域的努力。

而且我敢肯定有更多...