- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的表格包含这 3 个实体:学生、讲师和个人。人将是拥有学生和讲师共同属性的 parent 。这是我的数据库设计,这是实现特化的正确方法吗?
personID int 主键,
作用 varchar(10) ,
名称 varchar(50),
电子邮件 varchar(255)
学生ID整数,
摄入 varchar(50),
主要 varchar( 50) ,
personID int 引用人(personID)
LecturerID 整数,
技能 varchar(50),
限定 varchar(50) ,
personID int 引用人(personID)
上面的表格,这是实现泛化/特化的正确方法吗?如果是,如何在新学生注册时向数据库插入新值?
最佳答案
您通常有正确的想法(或者至少是实现此类数据库模式的常用习惯用法之一)。如果你的rdbms支持它,我会为 role
列使用枚举(例如,MySQL 支持。MS SQL Server 不支持)。如果没有,我会添加一个检查约束来实现类似的效果,并确保您不会在此处插入任何垃圾。
应该首先对基表 (person
) 进行插入,然后才对特化表(student
或 lecturer
)进行插入。例如:
INSERT INTO person
VALUES (1, 'student', 'hiboss', 'hiboss@example.com');
INSERT INTO student
VALUES (100, 'intake', 'computer science', 1);
关于mysql - 如何实现和插入值 SQL 特化/通用化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37236779/
我的表格包含这 3 个实体:学生、讲师和个人。人将是拥有学生和讲师共同属性的 parent 。这是我的数据库设计,这是实现特化的正确方法吗? 人 personID int 主键, 作用 varchar
我在原始 Windows 2016 服务器测试网站上配置了 SSL 以使用 HTTPS 流量。 通用化虚拟机后,当我从通用 VHD 创建新的 Windows 虚拟机时,我无法浏览 HTTPS 流量。
我是一名优秀的程序员,十分优秀!