gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:21:56 25 4
gpt4 key购买 nike

我想得到一些关于数据库设计的建议。具体来说,请考虑以下(假设的)场景:

  • 员工 - 保存所有员工详细信息的表
  • 用户 - 拥有访问软件的用户名和密码的员工表
  • 用户日志 - 用于跟踪用户何时登录和注销并计算的表
    软件使用时间

  • alt text

    在这种情况下,如果员工离开公司,我还想确保将他们从 Users 中删除。表,以便他们无法再访问该软件。我可以使用 ON DELETE CASCADE 来实现这一点作为 EmployeeID 之间 FK 关系的一部分在 EmployeesUsers .

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

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

    浏览过书籍等/在网上搜索过我还没有遇到任何带有与其他人没有关系的表的数据库模式,所以我的直觉在这里说我的方法不可靠......

    我很感激一些指导。

    最佳答案

    在这种情况下,我的个人偏好是通过向员工表添加“DeletedDate”列来“软删除”员工。这将允许您保持与 UserLog 表的参照完整性,并且所有员工(过去和现在)的所有详细信息都将保留在数据库中。

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

    关于sql-server-2005 - 在数据库设计中拥有一个不引用任何其他表的表是否明智?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4520127/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com