0

I have a registration page where a user can register him/herself along with 20 other people. Now I can store all those values in fine, the question I have is how to identify in the table. So let's say John registers himself and 20 of his friends. In the table, I would label him and his group with an ID number of 1, but I would label his ID specifically with a star so I know that he's the one who registered everyone else.

That's the idea I'm trying to get at, but I don't know how to do that in practice. What is the best way and how do I really go about doing this? I think I can write the code but I just need some concepts to work off of.

4

4 に答える 4

1

このために3つのテーブルを作成できます。すべての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)
);
于 2012-09-18T00:43:23.187 に答える
0

完全に正確にするのは少し難しいですが、登録に使用したIPをログに記録すると、そのIPから入ったアカウントの数が一般的にわかります。

于 2012-09-18T00:22:46.457 に答える
0

彼らが登録したNULLの場合、RegisteredByID列を追加すると、グループも簡単に見つけることができます。

于 2012-09-18T00:24:03.523 に答える
0

これは@Adrianが言っていたことの重複かもしれませんが、私は彼を本当に理解していなかったので...

ジョンが登録すると、user_idを取得しますよね?

registrar_idの列をテーブルに追加します。

他の20のユーザーレコードについては、Johnのuser_idをregistrar_id列に入力します。

于 2012-09-18T00:34:42.323 に答える