gpt4 book ai didi

mysql - 在关系数据库中保存属性的良好做法

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:54 24 4
gpt4 key购买 nike

假设我的系统中有两种类型的用户。

会编程的人和不会编程的人。

我需要将两种类型的用户保存在同一个表中。可以编程的用户与不能编程的用户有很多不同的属性,定义在另一个表中。

以下解决方案的优点是什么,还有更好的解决方案吗?

解决方案一

一个表包含具有相应属性的列。

Table `users`:
----------------------------
| id | name | can_program |
----------------------------
| 1 | Karl | 1 |
| 2 | Ally | 0 |
| 3 | Blake | 1 |
----------------------------

方案二

两个表通过主键和外键相互关联。一个表包含用户,另一个表只包含可以编程的人的 ID。

用户:

--------------
| id | name |
--------------
| 1 | Karl |
| 2 | Ally |
| 3 | Blake |
--------------

can_program:

---------------------
| id | can_program |
---------------------
| 1 | 1 |
| 3 | 1 |
---------------------

最佳答案

用户和允许他编程的属性之间存在 1-1 关系。我建议将此信息存储为表 users 中的附加列。创建额外的表基本上会导致与原始表具有 1-1 关系的额外存储结构。

关于mysql - 在关系数据库中保存属性的良好做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55230278/

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