Mysql的多个条目

时间:2012-09-18 00:20:00

标签: mysql phpmyadmin registration

我有一个注册页面,用户可以在其中注册他/她自己和其他20个人。现在我可以存储所有这些值,我的问题是如何在表中识别。所以,让我们说约翰登记自己和他的20个朋友。在表格中,我会用他的身份证号码1标记他和他的小组,但我会用明星标记他的身份证明,所以我知道他是那个注册其他人的人。

这是我想要的想法,但我不知道如何在实践中这样做。什么是最好的方式,我该如何做到这一点?我想我可以编写代码,但我只需要一些概念来解决问题。

4 个答案:

答案 0 :(得分:1)

您可以为此创建三个表。 UserList包含所有用户的所有记录。 GroupList包含所有组和组的所有者。最后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)
);

答案 1 :(得分:0)

有点难以完全准确,但可能会记录用于注册的IP,然后您通常会知道有多少帐户来自该IP。

答案 2 :(得分:0)

如果将RegisteredByID列添加为NULL,如果它们已注册为NULL,那么它也很容易找到该组。

答案 3 :(得分:0)

这可能是@Adrian所说的重复,但我并不是真的了解他,所以......

当John注册时,他获得了一个user_id,对吗?

在表中为registrar_id添加一列。

对于其他20个用户记录,请将John的user_id放在registrar_id列中。