CRM项目实战第一天

总纲:

1.项目分析

2.项目设计

3.编码

4.测试

CRM项目(客户管理系统项目)

项目采用的技术架构:

视图层(view):展示数据,与用户交互。html、css、js、jquery、bootstrap、jsp

控制层(controller):控制业务处理流程(接收请求,接收参数,封装参数;根据不同的请求调

用业务层处理业务,根据处理结果,返回相应信息)。servlet、springMVC

业务层(service):处理业务逻辑(处理业务的步骤以及业务操作的逻辑性)javaSE

持久层(dao/mappper):访问数据库。jdbc、mybatis

整合层:维护类资源,维护数据库资源。spring(IOC,AOP)

软件公司的组织结构:

研发部(美工、程序员、DBA);测试部;实施部;产品部;运维部;市场部

软件开发的生命周期:

1.招标、投标

2.可行性分析、需求分析

3.分析与设计

项目设计:

物理模型设计:表、字段、字段类型与长度以及表与表之间的关系

逻辑模型设计:类、属性与方法,方法返回值与参数,类与类之间的关系

界面设计:企业级应用(朴素),互联网应用(酷炫)

算法设计

搭建开发环境:

创建项目、添加jar包、添加配置文件、添加静态页面、添加公共类等

CRM项目的核心业务

CRM项目简介:Customer Relationship Management 客户关系管理系统(企业级应用)

系统管理功能:非直接处理业务数据,为保证业务管理系统的安全运行而设计的功能,例如用户登录、安全退出、登录验证

业务管理功能:处理业务数据,包括市场活动、客户与联系人、交易、售后回访、统计图表

crm的表结构
  tbl_user   用户表

  tbl_dic_type   数据字典类型表
  tbl_dic_value  数据字典值,存放下拉列表所有数据

  tbl_activity   市场活动表
  tbl_activity_remark  市场活动备注表

  tbl_clue       线索表
  tbl_clue_remark   线索备注表

  tbl_clue_activity_relation  线索和市场活动的关联关系表

  tbl_customer   客户表
  tbl_customer_remark  客户备注表

  tbl_contacts   联系人表
  tbl_contacts_remark 联系人备注表

  tbl_contacts_activity_relation 联系人和市场活动的关联关系表

  tbl_tran       交易表
  tbl_tran_remark  交易备注表
  tbl_tran_history  交易历史表

  tbl_task   任务表

主键字段:在数据库表中,如果有一组字段能够唯一确定一条记录,则可以把它们设计成表的主键字段。推荐使用一个字段做主键,而且推荐使用没有业务含义的字段做主键,比如:id等。

          主键字段的类型和长度由主键值的生成方式来决定:
                   主键值的生成方式:
               1)自增:借助数据库自身主键生成机制
                       数值型 长度由数据量来决定

                   运行效率低
                   开发效率高
               2)assighed:程序员手动生成主键值,唯一非空,算法.
                       hi/low:数值型 长度由数据量决定
                   UUID:字符串 长度是32位
               3)共享主键:由另一张表的类型和长度决定
                       tbl_person         tbl_card
                   id     name        id     name
                   1001   zs          1001    card1
                   1002   ls
               4)联合主键:由多个字段的类型和长度决定
   2)外键字段:用来确定表和表之间的关系。
              1)一对多:一张表(A)中的一条记录可以对应另一张表(B)中的多条记录;
                    另一张表(B)中的一条记录只能对应一张表(A)中的一条记录。
            A(1)---------B(n)
            父表         子表
            tbl_student                    tbl_class
            id      name class_id          id     name
            1001    zs    111              111    class1
            1002    ls    111              222    class2
            1003    ww    222
            1004    zl    

            添加数据时,先添加父表记录,再添加子表记录;
            删除数据时,先删除子表记录,再删除父表记录;
            查询数据时,可能会进行关联查询:
            //查询所有姓张的学生的id,name和所在班级name
            select s.id,s.name,c.name as className
            from tbl_student s
            join tbl_class c on s.class_id=c.id//假如外键不可以为空
            where s.name like 'z%'

            内连接:查询所有符合条件的数据,并且要求结果在两张表中都有相对应的记录
            左外连接:查询左侧表中所有符合条件的数据,即使在右侧表中没有相对应的记录
                     
               *如果外键不能为空,优先使用内连接;
             如果外键可以为空,
                               --假如只需要查询那些在另一张表中有相对应的记录,使用内连接
                       --假如需要查询左侧表中所有符合条件的记录,使用左外连接.
        2)一对一:一张表(A)中的一条记录只能对应另一张表(B)中的一条记录;
                  另一张表(B)中的一条记录也只能对应一张表(A)中的一条记录。
            tbl_person         tbl_card
            id     name        id     name
            1001   zs          1001    card1
               a)共享主键:(不推荐)
                 添加数据:先添加先产生的表,再后产生的表记录
             删除数据:先删除后产生的表记录,再删除先产生的表记录
             查询数据:无需进行连接查询
                       //查询zhangsan的驾照信息  1001
                   select *
                   from tbl_card
                   where id='1001'
                       b)唯一外键:
                 tbl_person             tbl_card
             id     name            id     name     person_id(唯一性约束)
             1001   zs              111    card1    1001
             1002   ls              222    card2    1002
             1003   ww              333    card3    1003
             *一对一就是一种特殊的一对多。
             *操作跟一对多完全一样。
         3)多对多:一张表(A)中的一条记录可以对应另一张表(B)中的多条记录;
                   另一张表(B)中的一条记录也可以对应一张表(A)中的多条记录。
               tbl_student                    tbl_course
               id     name                    id     name   
               1001   zs                      111    java   
               1002   ls                      222    mysql  
                       tbl_student_course_relation
                    student_id     course_id
                1001            111
                1001            222
                1002            111
                1002            222
               添加数据时,先添加父表记录(tbl_student,tbl_course),再添加子表(tbl_student_course_relation)记录;
               删除数据时,先删除子表记录(tbl_student_course_relation),再删除父表记录(tbl_student,tbl_course)
               查询数据时,可能会进行关联查询:
                  //查询所有姓张的学生的id,name,和所选课程的name
              select s.id,s.name,c.name as courseName
              from tbl_student s
                          join tbl_student_course_relation scr on s.id=scr.student_id
                          join tbl_course c on scr.course_id=c.id
              where s.name like 'z%'
  3)给关于日期和时间的字段:
     都按照字符串处理:
     char(10)   yyyy-MM-dd
     char(19)   yyyy-MM-dd HH:mm:ss

2,创建crm的数据库实例:
  把sql脚本导入数据库实例:

tbl_user

 

搭建开发环境:
  1)创建项目:crm-project
              设置JDK.


    创建工程:crm


              补全目录结构:


          设置编码格式:UTF-8


  2)添加jar包:添加依赖

 

 


  3)添加配置文件

 

 

 

 

 

  4)添加静态页面资源:
    webapps
       |->stumgr
       |->crm
            |->.html,.css,.js,.img   test.jsp
            |->WEB-INF
              |->web.xml
          |->classes
          |->lib
   *web应用根目录下的内容都是不安全的,外界可以通过url直接访问;
    所以,一般为了数据的安全,都会把页面放到WEB-INF下,因为WEB-INF目录下的资源是受保护的,外界不能直接访问。
   http://127.0.0.1:8080/crm/test.jsp

 

   webapps
       |->stumgr
       |->crm
            |->.css,.js,.img   
            |->WEB-INF
              |->web.xml
          |->classes
          |->lib
          |->pages  test.jsp
  5)把crm项目部署到tomcat上:


    http://127.0.0.1:8080/crm

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值