2013-11-02 73 views
0

我想獲得一些意見,因爲我正在考慮爲我的新應用程序創建結構,並且我正在努力爲表創建名稱,所以我想也許您可以給我一些想法。應用程序有用戶和用戶可以創建項目,而項目可以有多個關鍵字。因此,用戶與項目處於一對多關係,項目與標籤之間存在多對多關係。MySQL表的命名約定

所以有了表users我想項目表應該是users_projects。但關鍵字呢?應該是users_projects_keywords?而數據透視表又如何,因爲我認爲把它命名爲users_projects_to_users_projects_keywords或類似的東西是不好的。我會很感激一個提示。

編輯: 我一直認爲一對多的關係應該叫做x_y,其中y屬於x。這不是一個好習慣嗎?

+0

我喜歡:projects,users,projects_users。核心表具有單字母別名(p,u),並且鏈接表具有兩個字母別名(pu)。鏈接表中的user_id列鏈接到用戶表中的user_id列。 – Strawberry

+0

@Strawberry但是這個項目表真的是核心嗎?由於它依賴於一對多的用戶嗎?我擔心的情況是,可能存在兩種具有不同列的項目,因此不能將它們放在一張表中。像開發項目和用戶項目一樣。 –

+0

我只是在談論我的基本命名約定。如果設計更復雜,那麼命名模式可能需要更復雜以反映這一點。但不要爲這件事而痛苦。練習變得更容易。 – Strawberry

回答

0

我會有usersprojects,keywords,project_keywords。我會使用外鍵來定義表之間的關係。例如,projects將有一列,如createdby_userid,請參閱users.user_id列。

+0

嗯,我一直認爲一對多的關係應該像這個表中的user_id一樣命名爲users_projects。什麼時候會有管理項目?我不能命名我的表項目,因爲有像這樣的user_projects調用。嗯,這很難:) –

0

一個想法:

可能有三點字典:

  • users應該有id和其他數據。
  • projects也是如此。
  • 等表keywords

然後創建 「鏈接」(關係)表:

  • users_projects與列id, id_user, id_project
  • projects_keywordsid, id_project, id_keyword

編輯: 也許這確實是合理的將id_user納入表正如@勞雷斯所說的那樣,。