「这是我参与2022首次更文挑战的第29天,活动详情查看:2022首次更文挑战」。
第2章 搭建CRM项目开发环境
2.1 CRM项目数据库设计
2.1.1 数据库设计原则
我们可以结合项目原型来考虑数据库设计,市场活动,用户,这些都是需要是持久化的,所以都需要设计成表。表和表之间通常还会有一定的关系。看每一个创建表单上都有哪些属性。
1、所有的表来自于需求:
名词,特别是业务相关的名词。理清名词之间的关系。
概念性的名词设计成表、说明性的名词设计成字段。
有些不明显的名词,需要抽象,如数据字典表和数据字典类型表
2、字段:
1、主键:表中有很多字段,如果其中有一组字段能够唯一标识一条记录,则可以把这一组字段设计成主键。一般来讲,都是一个字段做主键,而且是没有业务语义的字段做主键。当然,也有个别情况下使用业务相关的字段做主键。
主键的生成方式:决定主键字段设计成什么类型和主键字段的长度。
a、自增:采用数据库提供的主键生成机制。
Mysql:auto_increment
Oracle:sequence
2、assigned:由程序员负责生成。
3、UUID:采用UUID的算法生成主键。
4、共享主键
b、assigned:外部程序员负责生成。
UUID,
hi/lo,
Twitter-Snowflake算法产生的背景相当简单,为了满足Twitter每秒上万条消息的请求,每条消息都必须分配一条唯一的id,这些id还需要一些大致的顺序(方便客户端排序),并且在分布式系统中不同机器产生的id必须不同。
c、共享主键:
d、联合主键:
2>、外键:外键用于表示表和表之间的关系。有的运行时不加外键,就是通过程序来保证数据的完整性。
3>、日期型数据的使用char型
2.1.2 数据库结构设计
2.1.3 初始化数据库
导入 init-crm-data-mysql.sql 脚本文件。