三期_day02_数据库表设计和开发准备工作

数据库脚本

drop table crm_user_info;
drop table crm_work_customer_relation;
drop table crm_business;
drop table crm_travel;
drop table crm_contact_log;
drop table crm_order;
drop table crm_order_detail;
drop table crm_gods;
drop table crm_judge;
drop table crm_advice;
drop table crm_message;

--用户基本信息表(包含超级管理员,企业人员,客户)
create table crm_user_info(
       crm_id integer primary key,      /*ID主键*/
       email varchar2(50) not null,     /*email作为登录账号*/
       passwords varchar2(50) not null, /*密码使用加密*/
       cname varchar2(50),              /*用户真实名*/
       phone varchar2(25),              /*电话*/
       sex integer,                      /*性别*/
       age integer,                     /*年龄*/
       address varchar2(200),           /*地址*/
       userlevel integer not null,      /*用户级别0:A   1:B   2:C   3:D */
       pl integer not null,             /*系统权限等级 3 2 1 0*/
       bussiness_id integer not null,   /*企业ID*/
       createdate date );               /*上次登录时间*/

create sequence seq_crm_user_info_seq  INCREMENT BY 1 START WITH 1001;

--员工-客户关系表
create table crm_work_customer_relation(
	 crm_cid integer not null,
	 crm_eid integer not null
);

--企业表
create table crm_business(
       business_id integer primary key,       /*企业ID*/
       business_name varchar2(50) not null,   /*企业名称*/
       business_type varchar2(200) not null ); /*企业经营范围*/  

create sequence seq_crm_business_seq  INCREMENT BY 1 START WITH 101;

--行程表
create table crm_travel(
      t_id integer primary key,          /*行程序列化自增ID*/
      c_id integer not null,             /*客户ID*/
      e_id integer not null,             /*员工ID*/
      state integer not null,            /*状态 finish:0  ready:1 */
      t_time date not null,              /*安排时间*/
      mission varchar2(1000) not null,   /*任务具体*/
      t_type integer not null,           /*类型(电话或者上访) call:0  go:1*/
      address varchar2(200),             /*上访地址*/
      c_remark varchar2(1000) );         /*备注*/

create sequence seq_crm_travel_seq  INCREMENT BY 1 START WITH 1001;

--联系记录表
create table crm_contact_log(
       cl_id integer primary key,         /*记录编号自增1*/
       t_type integer not null,           /*记录类型(电话0或者上访1)*/
       c_id integer not null,            /*客户ID*/
       e_id integer not null,            /*员工ID*/
       c_record varchar2(2000),          /*记录内容*/
       c_result varchar2(200) not null,  /*结果*/
       c_time date not null );           /*时间*/

create sequence seq_crm_contact_log_seq  INCREMENT BY 1 START WITH 1001;

--订单表
create table crm_order(
       o_id integer primary key,         /*订单表ID自增一*/
       c_id integer not null,            /*客户ID*/
       e_id integer not null,            /*员工ID*/
       address varchar2(200) not null );   /*收货地址*/

create sequence seq_crm_order_seq  INCREMENT BY 1 START WITH 1001;

--订单详细表
create table crm_order_detail(
       od_id integer primary key,        /*订单详细表ID自增一*/
       o_id integer not null,            /*订单表ID*/
       g_id integer not null,            /*商品编号*/
       od_num integer not null,          /*订货数量*/
       od_remark varchar2(200) not null, /*交易备注*/
       state integer not null,           /*状态 ok:0  ready:1  cancel:2  undefine:3*/
       odate date not null,              /*下单时间*/
       udate date not null );            /*订单更新时间*/

create sequence seq_crm_order_detail_seq  INCREMENT BY 1 START WITH 10001;

--商品表
create table crm_gods(
       g_id integer primary key,       /*商品编号*/
       g_name varchar2(45) not null,   /*名称*/
       g_color varchar2(45) not null,  /*颜色*/
       g_size varchar(10) not null,    /*规格*/
       g_price number not null,        /*原价*/
       g_rprice number not null );     /*出售价*/

create sequence seq_crm_gods_seq  INCREMENT BY 1 START WITH 1001;

--对客户的评定表
create table crm_judge(
       j_id integer primary key,
       c_id integer not null,             /*客户ID*/
       e_id integer not null,             /*员工ID*/
       j_comment varchar2(2000) not null );  /*评价内容*/

create sequence seq_crm_judge_seq  INCREMENT BY 1 START WITH 1001;

--建议表
create table crm_advice(
       a_id integer primary key,            /*建议表主键ID,自增一*/
       a_time date not null,                /*建议时间*/
       e_id integer not null,               /*客户ID*/
       a_advice varchar2(2000) not null,    /*建议内容*/
       business_id integer not null );       /*公司ID*/           

create sequence seq_crm_advice_seq  INCREMENT BY 1 START WITH 1001;

--留言表
create table crm_message(
       m_id integer primary key,
       c_id integer not null,                /*客户ID*/
       business_id integer not null,         /*企业ID*/
       m_message varchar2(2000),    		 /*内容*/
       m_feedback varchar2(2000),   		 /*反馈*/
       m_isfeedback integer not null,        /*是否已经反馈ok:0  ready:1*/
       m_time date not null );                /*留言时间*/ 

create sequence seq_crm_message_seq  INCREMENT BY 1 START WITH 10001;
commit;

因为是单纯的小项目,仅仅用于练习使用框架而练手的。表设计的不合理之处很多,也没有想那么多。

我是菜鸟,我在路上。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 06:42:13

三期_day02_数据库表设计和开发准备工作的相关文章

Oracle数据库表设计时的注意事项

表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据库菜鸟到数据库专家这个过程中,在表设计与管理上,或多或少,会犯一些错误.笔者今天就谈谈自己在这方面的经验与教训,或许能够给大家一些警示作用. 表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据库菜鸟到数据库专家这个过程中,在表设计

20170105数据库表设计知识点

20170105数据库表设计知识点 ------指导老师    星哥 1.PHP(MYSQL)擅长单表操作,不要做过多无谓的连接查询 2.表字段名不要使用大驼峰命名方式,最好采用下划线,命名要和团队习惯一致,通俗易懂. 3.表级.字段都要有注释 4.MyISAM 适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好.甚至你只是需要update一个字段,整个表都会被锁起来,而别的进程,就算是读进程都无法操作直到读操作完成.另外,MyISAM 对于 SELECT COUNT(*) 这类的计算

无限树形结构的数据库表设计

前言: 无限树形结构的数据库表设计的是否合理,直接影响到UI层是否方便根据树来查询关联的数据. 1.表字段: F_BtEd2kTypeId int Unchecked F_Name nvarchar(50) Checked F_ParentTypeId nvarchar(50) Checked F_Code nvarchar(50) Checked F_RecordStatus int Checked 2.表数据: 3.说明: 如2所示, 1)如果上表的数据关联上了一张表A,通过BtEd2kTy

数据库表设计三范式

数据库设计三范式(nomorlization) 1NF:原子性,即每个字段都不可以在分割了. 2NF:唯一性,即每个表只描述一个实体,这个实体要有主键,非主关键字要完全依赖主键,正因为说是完全依赖,是因为在组合主键存在的情况下,非主关键字不能只依赖部分关键字. 3NF:一个表中不能包含其他表中已经存在的非主键字段信息,也就是说只可以包含其他表的主键信息,这样就是主外键,通过主外键就可以进行表之间的连接(join),3NF主要是减少数据冗余. 数据库表设计三范式,布布扣,bubuko.com

Innodb IO优化 — 数据库表设计 转

数据库表设计这块学问比较多,我这里单从互联网角度出发同时结合Innodb的特性给出一些设计方法供大家参考.本文构建大概分两分部分:Innodb的特性及设计中如何利用这种特性. Innodb特性: Innodb是索引聚集表, 存储结构是BTREE Innodb的表的数据存储是有顺序的,默认是以主建排序,主建即是数据本身,不单独存放. 如果没有主建,Innodb以第一个唯一索引排序,如果连唯一索引也没,Innodb内部会产生一个6字节的字段排序(这个也是性能杀手,所以对这块如果不想花太多时间去想这个

数据库表设计的很灵活,是否做SQL语句也那么容易呢

由于项目需要,我们把一些不经常变的常数通过数据字段配置好,系统初始化的时候通过数据库字段去更新数据.下面就实例说明. 我有一张这样的表 ,你会发现meterkindid和measureid是代码,只有通过数据配置的数据字典才能解析出我们要的值,下面为数据字典表结构 ,这样设计就很灵活,FieldID为列名称,ID为上面表的值,value为解析值,也就是代码对应的名称,下面再发一张字典的数据图 MK001和MK002对应数据字典的水表跟电表,MS001和MS002对应数据字典的计量单位分别为吨还是

用户权限管理数据库表设计思想

用户权限管理数据库表设计思想 表:(1)用户表(user) (2)权限表(power) (3)部门表(group) (4)角色表(role) (5)用户部门角色表(user_group_role)存放用户id,部门id,角色id (6)权限部门角色表(power_group_role)存放权限id,部门id,角色id 设计理念: a用户可以(绑定)属于m部门n角色   z权限可以(绑定)属于m部门n角色 由此:a就拥有z权限 设计扩展:一个用户可以同时属于多个部门下的多个角色 每个部门下的每个角

数据库设计:用户登录系统数据库表设计

用户登录系统数据库表设计 最近看了看公司后台用户登录系统的设计, 比较混乱, 主要还是因为URS和Oauth以及URS第三方这三个登录形式各不相同导致的. 下面着重介绍一下涉及到第三方登录中需要注意的问题 在一个新项目中, 如果是要建立自己的登录体系的话, 那么直接创建一个Users表,包含username和password两列,这样,就可以实现登录了: id | username | password | name等其他字段 ----+----------+----------+-------

ERP开发分享 1 数据库表设计

这是我的ERP设计经验分享系列,今天讲的是数据库的表设计(1),主要阐述: 1.单字段的主键:2.使用int32作为主键类型:3.使用版本字段处理乐观锁定:4.生效字段标明是否允许“被使用”:5.锁定字段处理悲观锁定:6.行唯一字段处理分布式应用: