1

n00b mysql问题:

如果我有一个包含所有最终用户名和 ID 的表,并且我想跟踪每个用户的连接,每个最终用户是否应该获得自己的表?

例如

最终用户 A 连接到用户 B、用户 C 和用户 D;是否应该有一个单独的表,仅针对用户 A,其中包含一个列表:

User B  |    84746
User C  |    94837
User D  |    03265
4

3 回答 3

1

不,使用一张桌子。这就是数据库的用途 :-) 否则,您将得到大量表(如果您有很多用户)。即使您不期望有很多用户,这也不是要走的路。

于 2013-03-03T18:32:35.837 回答
1

我强烈反对它——不要创建多个需要作为查询结果的表(例如 SELECT * from (CONCAT(...)))。而是创建一个将最终用户与其连接映射的表:

 id (primary key) | endUser  | connectedUser | connections
 ---------------------------------------------------------
 1                | User A   | User B        | 84746
 2                | User A   | User C        | 94837
 3                | User A   | User D        | 03265

索引 endUser 列以便更快地访问,您应该设置。

于 2013-03-03T18:32:47.130 回答
1

我不知道您如何管理可变数量的表格,但那样您会失去所有关系。您应该为关系添加一张表:

CREATE TABLE Relationships (
    userOwnerID,
    userFriendID
);
于 2013-03-03T18:32:59.427 回答