我有2个表用户和 User_Event
用户
id PK BIGINT
User_Event
event_id PK BIGINT
user_id FK引用User.id
我应该在运行时之前创建上面的表吗
OR
我应该在运行时为每个现有用户创建表“User_Event”(在这种情况下,表名称将是这样的 User_Event_user001,User_Event_user002 ....)
现在我的问题是
1。哪种设计更好?
2。哪种实施更快?
答案 0 :(得分:1)
对于这两个问题,最好的答案是拥有一个不变的数据库结构。
修改/创建表对于数据库来说是很多工作,因为它们是为在定义的结构(表,视图)中管理DATA而设计的。
非常罕见的是,动态改变结构是相关的,甚至更不有效。
- >在运行时之前创建表!
答案 1 :(得分:0)
我不知道你的系统的目的是什么,但经典的实现是有一个表User_Event并存储关于该表中所有用户的数据。如果您想获取一个用户的信息,您应该使用查询:
SELECT event_id FROM User_Event where user_id=<your user_id>;