gpt4 book ai didi

MySQL数据库设计 "user"表

转载 作者:行者123 更新时间:2023-11-29 23:18:37 25 4
gpt4 key购买 nike

我的数据库中有一个下表。我要求我的用户可以是公司或私有(private)用户。他们有一些不同的特定字段(例如在公司中:公司名称、联系人)。我不确定如何在我的数据库设计中实现这一点。我是否必须创建 2 个单独的表(正如规范化规则所建议的那样)?我将不胜感激任何建议!
我的 USER 表:

user_id INT <- PK
first_name VARCHAR(35)
last_name VARCHAR(35)
email VARCHAR(254)
password VARCHAR(45)
birthday DATE
creation_date TIMESTAMP
last_access_date TIMESTAMP
updated_at TIMESTAMP
enabled BOOLEAN

提前致谢!

最佳答案

您需要在数据库中设计继承机制。其中一种方法,也是最简洁的方法,是设计三个表:

  • 用户表:该表将包含公司和私有(private)用户之间的公共(public)字段。例如,如果公司和私有(private)用户都有登录名和密码,您的用户表设计将如下

user(user_id, password...)

以user_id为主键(您可以根据需要选择其他主键)

  • company_user 表:该表将包含特定于公司用户的用户字段(登录名和密码除外)。该表将引用父 User 表的登录 PK
company_user(#user_id, company_address...)
  • private_user 表它将包含特定于私有(private)用户的用户字段(登录名和密码除外)。该表将引用父 User 表的登录 PK

private_user(#user_id, home_address...)

关于MySQL数据库设计 "user"表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27549683/

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