【发布时间】:2019-03-18 21:26:12
【问题描述】:
假设我的系统中有两种类型的用户。
会编程的人和不会编程的人。
我需要将两种类型的用户保存在同一个表中。 可以编程的用户与不能编程的用户有很多不同的属性,在另一个表中定义。
以下解决方案的优点是什么,有没有更好的解决方案?
解决方案 1
一个包含具有相应属性的列的表。
Table `users`:
----------------------------
| id | name | can_program |
----------------------------
| 1 | Karl | 1 |
| 2 | Ally | 0 |
| 3 | Blake | 1 |
----------------------------
解决方案 2
两个表通过主键和外键相互关联。 一张表包含用户,另一张表只包含可以编程的人的 id。
表users:
--------------
| id | name |
--------------
| 1 | Karl |
| 2 | Ally |
| 3 | Blake |
--------------
表can_program:
---------------------
| id | can_program |
---------------------
| 1 | 1 |
| 3 | 1 |
---------------------
【问题讨论】: