2012-09-18 73 views
0

我有一個註冊頁面,用戶可以在其中註冊他/她自己以及其他20個人。現在我可以保存所有這些值,我的問題是如何在表中識別。所以,讓我們說約翰註冊自己和他的20個朋友。在表格中,我會給他和他的團隊貼上ID號爲1的標籤,但我會用明星來標記他的ID,所以我知道他是註冊其他人的人。多個條目到Mysql

這就是我想要得到的想法,但我不知道如何在實踐中這樣做。什麼是最好的方式,我該如何去做這件事?我認爲我可以編寫代碼,但我只是需要一些概念來解決問題。

回答

0

有點難以完全準確,但也許登錄用於註冊的IP,然後你就會知道從該IP有多少帳戶進來。

0

如果添加一個RegisteredByID列,如果它是NULL,那麼它們會被註冊,然後很容易找到該組。

0

這可能是什麼@Adrian在說的DUP,但我真的不理解他,所以......

當約翰註冊,他得到一個user_ID的,對不對?

爲表registrar_id添加一列。

對於其他20個用戶記錄,將John的user_id放在registrar_id列中。

1

您可以爲此創建三個表格。其中包含所有用戶的所有記錄的UserListGroupList其中包含所有組和組的所有者。最後PersonGroup其中包含user_id和某個用戶所屬的組。

CREATE TABLE UserList 
(
    ID INT AUTO_INCREMENT, 
    FullName VARCHAR(50), 
    -- ... other columns if you want ... 
    CONSTRAINT ul_pk PRIMARY KEY (ID), 
    CONSTRAINT ul_uq UNIQUE (FullName) 
); 

CREATE TABLE GroupList 
(
    ID INT AUTO_INCREMENT, 
    GroupName VARCHAR(25), 
    OwnerID INT, 
    -- ... other columns if you want ... 
    CONSTRAINT gl_PK PRIMARY KEY (ID), 
    CONSTRAINT gl_UQ UNIQUE(GroupName), 
    CONSTRAINT gl_FK FOREIGN KEY (OwnerID) REFERENCES UserList(ID) 
); 

CREATE TABLE PersonGroup 
(
    RecordID INT AUTO_INCREMENT, 
    User_ID INT, 
    GROUP_ID INT, 
    CONSTRAINT pg_PK PRIMARY KEY (RecordID), 
    CONSTRAINT pg_uq UNIQUE (User_ID, GROUP_ID), 
    CONSTRAINT pg_FK1 FOREIGN KEY (User_ID) REFERENCES UserList(ID), 
    CONSTRAINT pg_FK2 FOREIGN KEY (GROUP_ID) REFERENCES GroupList(ID) 
); 
+0

PersonGroup.RecordID字段是多餘的。您只需在User_ID和Group_ID字段中使用主鍵。 –