2015-04-19 20 views
0

我正在做一個項目,我應該建立一個用戶表。每個用戶都有一些用戶信息,如用戶名和密碼等。此外,「用戶類型」:新用戶是「新手」,6個月的用戶是「常規」,1歲的用戶是「領導者」。這三種類型具有「業力」值來存儲他們的分數。還有「主持人」類型和「管理員」類型,它們不是「業力」,而是有緊急聯繫電話號碼。前者還具有程度的價值。如何在mysql工作臺中設計子類型?

This is my model

這是我的模型,到目前爲止,但我有問題,設計了「用戶類型」。我正在考慮超類型/子類型的解決方案,但似乎我不能在mysql工作臺上這樣做。有沒有替代設計?謝謝!

回答

1

對,MySQL Workbench無法建模繼承,因爲MySQL不支持它。但爲什麼要這麼複雜?只需將該類型定義爲用戶表上的屬性(字段)即可。使用枚舉來限制可接受的值。您還可以定義一個UserType表,該屬性具有1:n的關係,並且可以包含每個用戶類型的附加信息。

作爲一個旁註:你的附加表格的地址似乎是矯枉過正。多於一名用戶多久會住在一個地址?這是非常罕見的,您可以輕鬆地將地址存儲在用戶表中,而無需擔心顯着的非規範化。如果這是適當的,你可以使用國家和城市表格以及用戶表格中的關係對它們進行標準化。但是,user_has_postalAddress表格確實似乎是多餘的。