n00b mysql问题:
如果我有一个包含所有最终用户名和 ID 的表,并且我想跟踪每个用户的连接,每个最终用户是否应该获得自己的表?
例如
最终用户 A 连接到用户 B、用户 C 和用户 D;是否应该有一个单独的表,仅针对用户 A,其中包含一个列表:
User B | 84746
User C | 94837
User D | 03265
n00b mysql问题:
如果我有一个包含所有最终用户名和 ID 的表,并且我想跟踪每个用户的连接,每个最终用户是否应该获得自己的表?
例如
最终用户 A 连接到用户 B、用户 C 和用户 D;是否应该有一个单独的表,仅针对用户 A,其中包含一个列表:
User B | 84746
User C | 94837
User D | 03265
不,使用一张桌子。这就是数据库的用途 :-) 否则,您将得到大量表(如果您有很多用户)。即使您不期望有很多用户,这也不是要走的路。
我强烈反对它——不要创建多个需要作为查询结果的表(例如 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 列以便更快地访问,您应该设置。
我不知道您如何管理可变数量的表格,但那样您会失去所有关系。您应该为关系添加一张表:
CREATE TABLE Relationships (
userOwnerID,
userFriendID
);