- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为商店用户、学生和考官创建了 3 个表。
用户表包含登录详细信息
id
name
email
password
user_type (3 user types: 1 - administrators, 2 - students, 3 - examiners)
user_type_id
If user_type == 2 or 3, then based on that value, user_type_id field get student id or examiner id, if user_type == 1 then value == 0.
students 表包含学生详细信息
id
name
age
birthday
考官表包含考官详情
id
name
age
qualifications
我的问题是,用上面的方式连接用户、学生和考官是否可以?
如果不行,请提出一个方法。谢谢。
最佳答案
首先:您的数据模型需要一些改进。
其次:提供数据模型
我们在用户和其他两个实体(学生和考官)之间建立了关系。将来可能会将其他实体添加到此列表中。
我们有两个关系:用户和学生之间的一种关系以及用户和考官之间的另一种关系
这些关系是一对一的。例如每个学生有一个用户,每个用户只能为一个学生设置。以及 User 和 Examine 之间的类似声明。
在一对一关系中,我们有 2 种解决方案:
1- 将 1-1 关系中第 1 侧实体的主键作为外键传递给第二面的实体。
2- 将 1-1 关系中第 2 端实体的主键作为外键传递给第 1 面的实体。
两种解决方案都是正确且正常的。所以对于这种情况我们有 2 种解决方案:
解决方案 1:将 User ID 作为外键传递给 Student 和 Examiner。在此解决方案中,我们可以轻松找到特定学生或特定考官的每个用户 ID。 但是此解决方案的困难部分是根据用户 ID 找到学生或考官。答案是:请注意,每个用户 ID 都有用户类型。因此,根据用户 ID 的用户类型,我们知道要搜索哪个表(学生或考官)。
解决方案 2:将 Student 和 Examiner ID 作为外键传递给 Users。这意味着用户实体有 2 个外键。第一个用于学生 ID,第二个用于考官 ID。这个解决方案接缝非常有效。但它与AA模块(Authentication and Authorization Module)的Modularity相冲突。当与 User 相关的其他表(Student、Examiner 等)的数量很高时,就会出现另一个问题。不管怎样,在小型信息系统中我们可以使用这个解决方案。
关于MySQL:存储 user_type 和 user_type_id 的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47397129/
我为商店用户、学生和考官创建了 3 个表。 用户表包含登录详细信息 id name email password user_type (3 user types: 1 - administrators
我是一名优秀的程序员,十分优秀!