ID还是普通字段做外键合适?

ORACLE主键设计探讨

ORACLE:USER表中没有ID字段,只有USERNAME做为一个唯一一字段当主键,

COMMENT评论表中有一个user表的外键是用了USER表中的USERNAME字段。

我总认为这不合理,一般情况下应该每个表都有个ID字段,且通过序列化生成唯一数值作为主键,然后当其它表的外键,但是这个项目的SQL给过来是这样的,不合理就需要理由啊

实验3-定义语句 实验题目: 定义语句 实验目的: 掌握使用SQL语句和可视化软件创建、修改结构、删除 实验要求: 掌握的创建、修改和删除操作 实验要求: 掌握的创建、修改和删除操作 实验设计: (1)利用SQL命令创建名为’’student_sc_2”的数据库 (2)在数据库student_sc_2中使用SQL语句创建4个如果先前不存在的简单:院系、专业、教师、班级、学生、课程信息、教学任务、成绩。对相应关系模型设计字段类型(长度),以及创建主约束、唯一性约束、约束、自增约束、空和非空约束、注释。下划线代 院系(department):(dept_id(院系ID)、dept_name(院系名称)) 专业(major):(major_id(专业ID)、dept_id(院系ID,添加)、major_name(专业名称))引擎默认innoDB、字符集utf8 教师(teacher):(teacher_id(教师ID)、teacher_name(教师姓名)、teacher_sex(性别,缺省值为女)、phone(电话)、positional(职称)) 班级(class):(class_id(班级ID)、major_id(专业id、添加普通索引)、class_name(班级名称)、teacher_id(辅导员id)、total(总人数)) (3)在数据库student_sc_2中利用可视化软件(navicat)创建4个如果先前不存在的简单:学生、课程信息、教学任务、成绩。对相应关系模型设计字段类型(长度),以及创建主约束、唯一性约束、自增约束、空和非空约束、注释。下划线代 学生(student):(student_id(学生ID)、class_id(班级ID)、student_name(学生姓名)、student_sex(性别,缺省值为男)、birthday(出生日期)、identity_card(身份证号)) 课程信息(course_info):(course_id(课程ID)、course_name(课程名称)、dept_id(所属院系ID)、major_id(所属专业ID) 教学任务(assignment):(assignment_id(任务ID)、teacher_id(分配教师ID)、assignment_name(任务名称)) 成绩(score):(score_id(成绩ID)、student_id(学生ID)、course_id(课程ID)、assignment_id(任务ID)、score(分数)) (4)使用SQL语句完成以下内容 score添加字段credit(学分)字段字段类型自定义 alter table 名 add [column] 新字段字段类型 [字段属性列]; alter table score add credit decimal(5,2) comment ‘学分’ 删除teacher中phone字段 alter table 名 drop [column] 字段名; 添加clazz中total字段默认值为0; alter table 名 alter [column] 字段名 set default 默认值; 删除teacherteacher_sex字段默认值; alter table 名 alter [column] 字段名 drop default; 修改course_info选项引擎为InnoDB、字符集为utf8mb4 添加student中student_sex普通索引 alter table 名 add index [索引名] (字段名1[,字段名2,...]); alter table worker add index indexname (salary); 添加student中student_id索引(约束): alter table 名 add primary key (字段名1[,字段名2,...]); 添加studentidentity_card唯一索引(约束); alter table 名 add unique index(字段名1[,字段名2,...]); 删除class中的dept_id字段普通索引; alter table 名 drop index 索引名; 删除score成绩
最新发布
06-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值