建表原则,视图
2017-06-17 本文已影响0人
云承寒
建表原则
-
一对多的关系建表
从表中创建一个外键字段,指向主表的主键。
分类和商品:一个分类可以对应多个商品,但一个商品只能属于某一个分类。
部门和员工:一个部门可以有多个员工,但一个员工只能属于某一个部门。
-
多对多的关系建表原则
创建中间表,表中至少有两个字段,分别作为外键,指向各自一方的主键。
两张表分别都是主表,中间表为从表,提供两个字段都是外键。
学生和课程
主键,外键
主键:primary key
外键:foreign key,用来保证数据的完整性。
从表外键列的值必须参照主表主键列的值,外键允许为NULL。
从表中外键的数据类型,必须与主表中主键的数据类型保持一致。
外键值不许添加主表中,不存在的主键值。
主表的主键,不能删除从表中外键已经引用的记录。
声明外键约束
alter table 从表 add [constraint] [外键名称]
foreign key(从表外键字段名)
references 主表(主表的主键)
在MySQL中,InnoDB支持事务和外键,修改表的存储引擎为InnoDB。
ALTER TABLE 表名 ENGINE = 'InnoDB';
约定优于配置:约定好规则
表名:t_表名
主键 id
外键 参照表(缩写)_主键名
开发中为了提高性能,往往不要外键,但是依然使用InnoDB存储引擎。
视图
视图即虚表,实际上就是一个命名的查询,用于改变基表数据的显示,用来限制对基表数据的直接访问,提高了查询性能。
视图的DML
创建视图
CREATE VIEW v_demo
AS SELECT AVG(salePrice)
FROM product
WHERE salePrice > 100
GROUP BY dir_id HAVING AVG(salePrice) > 400
删除一个视图
DROP VIEW viewname