使用 SQL Server 2008 将数据插入到两个不同的表中?



我的数据库中有三个表:Contacts(主表),UsersStaffContacts表有一个主键,该主键作为外键从Users表和Staff表中引用。

接触

ContactID (Primary Key)
First Name
Last Name 
Email 

用户

ContactID (Foreign Key) 
Username 
Password 

员工

ContactID (Foreign Key) 
Position 
Comments

使用INNER JOIN从这些表中提取数据相当简单,并且取决于您需要从UsersStaff表中获取哪些数据。更新和插入新记录是我不确定采用哪种方法的事情。

由于Contacts表是我的主表,并且拥有唯一的ID,但同时在UsersStaff之间共享,因此我不确定这种情况。

假设我想输入新的用户记录。我需要在Contacts表中输入名字、姓氏和电子邮件,在Users表中输入用户名和密码。同时,我必须检查Contacts表中是否已存在名字,姓氏和电子邮件,因为可能以前已为Staff记录输入了此Contact记录。

我不确定如何防止重复,但同时可能有同名的用户或员工。如果联系人表中已经存在电子邮件,我是否应该通过电子邮件限制/过滤,并且不让他们输入记录?还是有更好的方法来解决这个问题?

拥有三个表的全部意义在于防止冗余数据,因为User可能是Staff,但如果有意义,Staff可能不是一个User。如果有人可以帮助我选择最佳方法,请告诉我。谢谢

您必须首先使用 SELECT 查询和要测试的任何业务规则来决定是执行 INSERT 还是改为更新现有记录。

然后,如果您要插入,则必须首先插入到联系人中,获取新插入的ID,然后插入到其他两个表中。

最新更新