利用MySQL设计管理数据库的经验

  • E-R关系模型
    • 保存树状关系:所有节点作为实体集,在该实体集上建立一个自联系集保存父子关系。类似邻接矩阵。
    • 命名法
      • 总则:全s以下小写;下划线'_'分割每个单词;不要与关键字冲突,实在冲突可用``表示元素名;MySQL的标识符识别能力弱,只能自定义单词或字母作为暗示表含义的运算符
      • 后缀_log:表明记录为流水账,id自增;最好不要删除记录,因为常常被其他表做外键引用
      • 实体集:尽量以单个单词表示
      • 弱实体集:所依附的实体集名称+w+本弱实体集名称,例如实体集class,弱实体集为class_w_student。其中w表示weak。在此命名法下,不同的弱实体集虽然可同名,但最好不要同名,因为所依附的实体集名称+w+本弱实体集名称比较长,在部分场景下可能超过命名长度限制
      • 二元联系集:(弱)实体集名+[l,m]r+(弱)实体集名+of+联系名,例如men_r_cloth_of_wear表示男人穿衣服的多对多联系集;class_lr_student表示班级有学生的一对多联系集。其中l表示less,m表示more
      • 联系集作为实体集:引入左右括号标识实体集,例如a、b分别表示左右括号,可有time_a_mem_r_cloth_of_wear_b表示男人穿衣服这个动作的时间,前面的time可以仅仅是一个字段,不一定是实体集
    • 主键
      • 总则:以整数字段作为主键,以提升查询速度,也方便管理;先理清表内关系模式的函数依赖,再选择主键
      • 实体集:设置唯一主键,即候选键
      • 弱实体集:所依附的实体集的候选键与本弱实体集的候选键形成复合主键。MySQL8下,不要将本弱实体集的候选键设置为自增,因为在建立索引时,自增主键必须在最左列,即弱实体集候选键优先于所依附实体集,但实际上要查询时,必须先查找所依附的实体集的候选键,而不是本弱实体集的候选键。
      • 二元联系集:将被关联的两个表的候选键放在一起,组成联合主键,唯一标识一个联系。
    • 外键
      • 弱实体集:将所依附的实体集的候选键设置为外键
      • 二元联系集:将被关联的两个表的候选键都分别设为外键
      • 复合外键:将被引用的表的多个字段的组合作为外键,定义为一个外键约束。在含有弱实体集的联系中常用(外键为弱实体集的复合主键)
      • 外键链:被引用的表已经做过的外键约束,在本表中就无需再次设置外键约束
    • 索引
      • 总则:主键全部设为索引,被引用的整数外键会被自动设置索引;索引以空间换时间,加快使用被索引字段的查找速度(b+tree)
  • information_schema
    • auto_increment在存储过程中不能被变量赋值?
  • 存储过程
    • 事务
    • 异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值