Open lampkid opened 6 years ago
比如图书系统中,book表,应该直接用自增id作为book记录的唯一id还是设计一个book_id字段用于表示book记录的唯一性?
比如订单表,order表中,order_id字段的设计?
使用自增主键是否总是最佳实践?
比如老师和学生,其之间的关联关系设计有以下两种方法:
比如供应商、店铺、商品,供应商可以将商品供应给多家店铺,多家店铺售卖多个商品,我们表字段应该如何设计?
使用where id in [1, 2] 还是 使用where id = 1 or id =2
数据库 timezone的处理以及engine/ORM对timezone的处理
在NodeJS使用sequelize时,sequelize设置时区为+8:00,存储数据为当前时间,没有问题。 当使用sequelize查询结果时,查询的结果早了8小时。
一个字段:比如用status表示审核通过或失败,通过后,如果启用status变为启用 两个字段:用status表示审核状态,用active表示是否生效
索引根据查询字段组合设计
数据表里有name,title,description字段,根据一个关键字query 做or查询,这个需要建索引吗?建单列索引还是联合索引? select * from table where name like '%a%' or title like '%a' or description like '%a'; 最左原则
数据表设计中,ID应该使用数据表中自增id还是应该设计一个业务ID?
比如图书系统中,book表,应该直接用自增id作为book记录的唯一id还是设计一个book_id字段用于表示book记录的唯一性?
比如订单表,order表中,order_id字段的设计?
数据库表之间关联关系应该如何设计?
比如老师和学生,其之间的关联关系设计有以下两种方法:
三级关联关系中,冗余设计是否合理?
比如供应商、店铺、商品,供应商可以将商品供应给多家店铺,多家店铺售卖多个商品,我们表字段应该如何设计?
数据库多表查询时,使用join查询还是查询多次
数据库查询时,in和or的效率问题
数据库与ORM时区Timezone问题
数据库 timezone的处理以及engine/ORM对timezone的处理
数据库状态字段设计中,审核状态和生效停用状态用一个字段还是两个字段?
权限设计,以防逻辑越权漏洞
事务操作
索引和unique设计
索引根据查询字段组合设计