2012-04-26 60 views
0

我想要兩個表共享一個主要的自動遞增ID,這可能嗎?我該怎麼做呢?他們需要考慮什麼?創建一個新的MySQL表與一個主自動遞增的ID鏈接到另一個表?

我這樣做的原因,是因爲它比向用戶表添加組列更好,因爲如果他們共享一個主鍵,我可以使用現有的帖子表爲兩個組和用戶。代替具有以創建兩個不同的訊息表,(對於組帖子group_posts表。和用於用戶職位user_posts表。)

現有用戶表是

ID(伯,AI)

用戶名

密碼

電子郵件

我的羣組表,我想共享AI主鍵

ID鏈接到我的用戶表(伯,AI,鏈接到用戶表的id)

組名

CREATED_BY

CREATION_DATE

+0

如果兩個表具有完全相同的主鍵,沒有理由他們不應該是一個單一的表。似乎你正在創建組與用戶之間的1對1關係,這看起來很奇怪。 – Romain 2012-04-26 12:10:21

+0

通過使它們一對一我可以重用許多預先存在的用戶功能並將它們應用於組。到目前爲止,下面的例子,帖子,輸出帖子,發帖等組和用戶基本上是相同的。我可以通過創建一個列來標識這兩行是一個組還是一個用戶。 – arboles 2012-04-26 12:17:51

+0

1-1的替代方案將使組和用戶表完全分離。從我的帖子表輸出帖子時,這可能會造成問題。因爲posting_to id會與用戶和組表衝突。我想我可以創建一個專欄來區分posted_to_groups和posting_to_users。 – arboles 2012-04-26 12:24:23

回答

1

你應該讓你的架構通過執行以下操作更清晰:

  1. 創建一個表(例如people
    • id,主鍵,自動遞增
    • type,告訴你,如果它是一個usergroup
  2. usersgroups主鍵外鍵上people
    • 插入記錄在people
    • 獲取一個使用分配了ID LAST_INSERT_ID()
    • 插入在usersgroups適當,使用上述

獲得的ID然後你會引用「人」,而不是「用戶」或「集團」在您的posts表等。

概念,在一個面向對象的方式它的思考,這意味着usersgroups都擴展people

相關問題