系统设计
developer@liyong
GISer
展开
-
数据库设计-MYSQL数据引擎
因此在开发过程中,如果遇到写操作一定要确保update/delete语句条件使用到了索引,否则锁的是整张表,程序不具备并发性。在innodb中只有利用索引的更新操作,删除操作,才能使用行级锁。系统临时表,SQL查询,分组临时表引擎。只读类的应用,报表数据,字典数据。空间类应用,开发GIS系统。不能使用索引的则是表锁。非事务应用,例如保存日志。转载 2024-07-14 15:39:40 · 36 阅读 · 0 评论 -
数据库-自然主键于代理主键
也就是说自然主键其实是数据的一个属性,所以在设计的时候推荐生成一个代理主键。这样更容易做数据迁移和数据操作。2 代理主键是指于业务无关的,无无意义的数字序列值。1 自然主键是指驶入属性中的自然唯一标识。原创 2024-07-14 14:49:44 · 133 阅读 · 0 评论 -
数据库-三范式
这样拆分以后删除异常还是存在,比如学生高芳芳不存在了,那么这个时候法律系也不存在了,同时系主任依赖于系名,只有知道了系名才有系主任,所以需要进一步拆分。参考资料:https://www.itlaoqi.com/chapter.html?三范式不是强制要求,需要根据场景进行选择,否则会出现主从表关系过多,影响SQL效率。例如上面的例子就不满足第一范式,因为是可以继续拆分的,拆分为更多的属性。3 第三范式的目的在于拆分实体(完善主从表)3 数据库的表都是二维的行与列。原创 2024-07-14 14:36:18 · 217 阅读 · 0 评论 -
库表设计(基础)-实体与设计关系
1 一对一,通过主键进行关联(两个表用的是同一个主键,一一对应)。2 一对多,通过在多的一方设置外键进行关联。3 多对多,增加中间表,持有双方主键。所以基于这个实体关系,可以得到5张表。1 实体关系是指系统事务之间的联系。2 实体关系需要双向分析。3 实体关系决定表关系。学生和学籍档案: 1:1。班级和学生 : 1:N。学生和课程:N : N。原创 2024-07-05 14:25:15 · 173 阅读 · 0 评论