gpt4 book ai didi

mysql - SQL 最佳实践 : Using a column to store two different kinds of data?

转载 作者:搜寻专家 更新时间:2023-10-30 21:57:42 25 4
gpt4 key购买 nike

假设我有一个包含 idusernamepasswordtype 的登录表linked_id

type 列指定该登录是属于员工还是客户。

如果他们是员工,linked_id 是他们在员工表中的 ID。

如果他们是客户,linked_id 是他们在客户表中的 ID。

直觉上,这似乎是个坏主意,但除了处理外键约束外,我想不出或没有理由不这样做。

这也带来了另一个问题:在这种情况下,FK 约束总是很重要吗?

想法?

最佳答案

我认为您错误地考虑了表格设计。我会将登录信息放在一张表中,然后指向相应表中的登录记录。换句话说,从员工和客户表中指向您的登录记录,而不是从登录记录中指向客户或员工记录。这允许您拥有外键约束并消除了对“类型”的额外字段的需要

举个例子:

  • 登录:Id(PK)、用户名、密码
  • 员工:Id(PK)、姓名、EmployeeNumber、Login_Id(FK_LoginId)
  • 客户:Id(PK)、姓名、地址、Login_Id(FK_LoginId)

然后,您自然而然地知道每个登录的“类型”是什么,数据存储在哪个表中。

关于mysql - SQL 最佳实践 : Using a column to store two different kinds of data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35211348/

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