在数据库设计中有一个不引用任何其他表的表是否明智?

Ale*_*x P 3 database-design sql-server-2005

我想就数据库设计提出一些建议.具体来说,请考虑以下(假设的)情景:

  • 员工 - 包含所有员工详细信息的表格
  • 用户 - 持有具有用户名和密码的员工访问软件的表
  • UserLog - 用于跟踪用户登录和注销以及计算软件时间的表

替代文字

在这种情况下,如果员工离开公司,我还要确保从Users表中删除它们,以便他们无法再访问该软件.我可以通过实现这个ON DELETE CASCADE作为的FK关系的一部分EmployeeIDEmployeesUsers.

但是,我不想删除他们的详细信息,UserLog因为我有兴趣整理人们花在软件上的时间以及他们不再在公司工作这一事实并不意味着他们的用户行为不再相关.

我剩下的是一个UserLog与我的数据库中的任何其他表没有关系的表.这是一个明智的想法吗?

浏览过书籍等等/ googled online我没有遇到过任何与其他人没有任何关系的数据库模式,所以我的直觉就是说我的方法不健全......

我很感激你的指导.

Joe*_*lli 5

在这种情况下,我个人的偏好是通过向Employees表添加"DeletedDate"列来"软删除"员工.这将允许您使用UserLog表维护参照完整性,并且所有员工(过去和现在)的所有详细信息在数据库中仍然可用.

这种方法的缺点是您需要添加应用程序逻辑来检查活跃的员工.