在运行时创建表

时间:2011-10-12 19:36:23

标签: database database-design

我有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。哪种实施更快?

2 个答案:

答案 0 :(得分:1)

对于这两个问题,最好的答案是拥有一个不变的数据库结构。

修改/创建表对于数据库来说是很多工作,因为它们是为在定义的结构(表,视图)中管理DATA而设计的。

非常罕见的是,动态改变结构是相关的,甚至更不有效。

- >在运行时之前创建表!

答案 1 :(得分:0)

我不知道你的系统的目的是什么,但经典的实现是有一个表User_Event并存储关于该表中所有用户的数据。如果您想获取一个用户的信息,您应该使用查询:

SELECT event_id FROM User_Event where user_id=<your user_id>;