如何将多个表中的值插入另一个表?

时间:2011-12-19 08:02:09

标签: database triggers insert multiple-tables

我是数据库的新手。我总共有4个表:当用户登录Facebook时会自动填充3个表。我希望主键的值从那些表中填充到第4个表中。我该怎么做......我很快就需要帮助!

表格如下:

table:attributes
fb_user : fb_uid, birhtday, gender, email.
company_master : com_id, com_name.
position_master : pos_id, pos_name.

第4张表是这样的:

[table]:[attributes]
work_history : work_id, fb_uid, com_id, pos_id.

fb_uidpos_idcom_id是主键。

如何使用较少的数据库操作执行此操作?有没有办法使用触发器进行优化?

1 个答案:

答案 0 :(得分:0)

首先,您使用的是哪种类型的数据库?其次,这似乎是一个数据库设计问题。您确实应该在所有表中使用单个唯一主键,而不是使用不同的原色并映射它们。由于您使用Facebook,因此将其Facebook ID用作所有表的主要内容然后将其他ID存储为唯一字段是有意义的。这还可以让您轻松使用联接等有用功能,一次从多个表中检索数据。如果这不实用,例如,您为同一个用户使用多个登录(Facebook Google等),那么您将希望拥有一个像您建议的查找表作为驱动表然后使用它来帮助填充其他人。理想情况下,您希望尽可能减少冗余数据,以降低数据不一致的风险。如果您是数据库的新手,您应该阅读有关数据库设计和数据库规范化的一些内容。一个好的设计将有助于提高可扩展性并防止很多麻烦和挫折。