2013-06-18 23 views
0

我想創建一個應用程序,並且在開始編程之前,我想聽聽您關於基本模型的專業建議和建議,因爲我已經考慮到了這一點。
對不起,我沒有畫出文字的結構,但這似乎是提出我的案子的最明確的方式。數據庫關係方案MySQL - 配置文件

enter image description here

的情況是這樣的:

  • 用戶可以結交朋友;
  • 用戶可以爲一個或多個實體創建配置文件,例如酒吧,餐廳,活動組織者或商店。這些主要類別的數量可能會增加(並且這些主要類別中也會有子類別)。創建實體配置文件時,會立即更新profile_tbl,owner_tbl和bar/organizer_tbl,並自動爲用戶分配「root」用戶角色狀態。我想這必須通過mySQL事務完成;
  • 不同的配置文件有不同的特點:酒吧,餐廳,活動,商店是某種可比較的,但他們有很多不同的特徵,將反映在他們的個人資料。因此,我將它們分解成單獨的表格。創建實體配置文件後,用戶可以配置其實體配置文件;
  • 用戶只能是同一所有配置文件(bar,resto,event,shop)的所有者一次(這就是爲什麼我在owner_tbl中創建了一個複合PK);
  • 具有個人檔案和「根」用戶角色狀態(該地點的創始人)的用戶可以將共同管理授予其他用戶。 基於用戶角色,用戶將能夠執行某些操作並具有某些查看權限。

如果你認爲這是不行的,你能和我一起上的,爲什麼分享?請讓我知道這幅畫有什麼問題,因爲我的其他發展努力是徒勞的。
我很確定你對這個應用程序的用途有了一個概念。
如果您有任何進一步的建議,感謝您的建議。

回答

1

而不是創建每個事件的分離表,即酒吧,組織者等,只創建1個表profile_details(或事件),它將容納所有事件。在這個表中添加一個名爲event_description的列。這一點很重要,因爲在我們目前的設計中,您可以找到配置文件屬於哪個事件,以便根據每個事件表進行驗證。除此之外,高級別的設計看起來不錯。

+0

您好,非常感謝您的回覆。你的意思是我應該將關於酒吧,活動組織者,商店等的所有細節信息彙總到一張表中?恐怕這會使表格過載,因爲表格中會包含更多詳細和不相關的實體典型信息,或者表格會將其與其他子表格相關聯。例如。一個活動組織者可能會創建一個藝術家陣容,擁有藝術家個人資料(與組織者表格有關),但它與商店完全沒有關係。會有很多像這樣的例子。你對這個主題有什麼看法? – Trace

+0

我堅信,只要所有事件具有相似的特徵,就應該放在單一表格中。通過超載你是否意味着性能問題?可以創建索引以便稍後處理它,但最初的設計必須是正確的。再一次,正如我在我的回答中提到的,如果在我目前的設計中,我給你一個簡介ID,你將如何確定它屬於哪個事件,而不會掃描你創建的每個事件表。而且,如果將來發生新的事件,你最終會創建新的表格,這是不對的。 –

+0

+1好的,我明白了你的觀點。可以在同一張表中收集相似之處。通過重載表格,實際上我的意思是重載一張包含大量不相關信息的表格 - >但似乎識別與每個實體的單獨特徵共享的信息很重要。我明白你的意思;對於讀取配置文件信息,它只會掃描一個表而不是很多,除非有一個實體的典型信息請求。我看到這個方法正確嗎?如果沒有人反對進一步反對該計劃,我明天會接受你的回答。 – Trace