因为这里只是个简单的Demo,所以设计上就简单点了。
大概的想法就是一个通讯录跟博客,当然是非常简单的那种。
一共有4张表。
用户表,联系人表,联系人类别表,博客表。
简单介绍下
每个用户都有个人通讯录,通讯录下添加联系人,联系人可以分类。
用户还可以写Blog,其他用户可以查看你公开的Blog。
当然这个基础上,可以加入例如好友,收藏,评论等等功能,这个根据后面的情况,如果能反映某个技术难点的话,再添加上去。
简述下这个过程:
新建一个数据库
打开PowerDesigner,新建一个PDM(Physical Data Model),其实就是表设计
使用Palette上控件,完成数据库设计
设计结果
直接生成SQL文
在数据库中执行SQL文
如果你也是使用Navicat执行SQL文的话,这里要注意一点,生成的SQL文开头部分,有删除索引的语句,在第一次执行时,要先删掉这段,否则会报错,无法建立表。
执行成功后,可以看到表建立好了
生成的SQL文如下:
/*==============================================================*/
/* DBMS name: MySQL 5.0 */
/* Created on: 2011-2-20 23:25:35 */
/*==============================================================*/
drop index titleIndex on t_blog;
drop index modifyTimeIndex on t_blog;
drop table if exists t_blog;
drop index emailIndex on t_contact;
drop index cellphoneIndex on t_contact;
drop index userNameIndex on t_contact;
drop table if exists t_contact;
drop index userTypeIndex on t_contact_type;
drop table if exists t_contact_type;
drop table if exists t_user;
/*==============================================================*/
/* Table: t_blog */
/*==============================================================*/
create table t_blog
(
id int not null auto_increment comment '唯一主键',
userId int comment '用户id',
title varchar(100) comment '标题',
content varchar(1000) comment '内容',
isPublic varchar(4) comment '是否公开(1.私有 2.公开)',
createTime timestamp comment '创建时间',
modifyTime timestamp comment '修改时间',
primary key (id)
);
alter table t_blog comment '博客表';
/*==============================================================*/
/* Index: modifyTimeIndex */
/*==============================================================*/
create index modifyTimeIndex on t_blog
(
modifyTime
);
/*==============================================================*/
/* Index: titleIndex */
/*==============================================================*/
create index titleIndex on t_blog
(
title
);
/*==============================================================*/
/* Table: t_contact */
/*==============================================================*/
create table t_contact
(
id int not null auto_increment comment '唯一主键',
userId int comment '用户id',
contactTypeId int comment '联系人类别Id',
contactName varchar(50) comment '联系人名',
sex varchar(10) comment '性别',
birthday date comment '生日',
telephone varchar(20) comment '电话',
mobilephone varchar(20) comment '手机',
qq varchar(20) comment 'QQ号',
msn varchar(20) comment 'MSN号',
email varchar(50) comment '电子邮件',
address varchar(50) comment '家庭住址',
remark varchar(100) comment '备注',
primary key (id)
);
alter table t_contact comment '联系人表';
/*==============================================================*/
/* Index: userNameIndex */
/*==============================================================*/
create index userNameIndex on t_contact
(
contactName
);
/*==============================================================*/
/* Index: cellphoneIndex */
/*==============================================================*/
create index cellphoneIndex on t_contact
(
mobilephone
);
/*==============================================================*/
/* Index: emailIndex */
/*==============================================================*/
create index emailIndex on t_contact
(
email
);
/*==============================================================*/
/* Table: t_contact_type */
/*==============================================================*/
create table t_contact_type
(
id int not null auto_increment comment '唯一主键',
userId int comment '用户id',
typeName varchar(20) comment '类别名称',
primary key (id)
);
alter table t_contact_type comment '联系人类别表';
/*==============================================================*/
/* Index: userTypeIndex */
/*==============================================================*/
create unique index userTypeIndex on t_contact_type
(
typeName
);
/*==============================================================*/
/* Table: t_user */
/*==============================================================*/
create table t_user
(
id int not null auto_increment comment '唯一主键',
userName varchar(30) comment '用户名',
password varchar(20) comment '密码',
userType varchar(10) comment '用户类型(1.管理员 2.普通用户)',
primary key (id)
);
alter table t_user comment '用户表';
alter table t_blog add constraint FK_Reference_4 foreign key (userId)
references t_user (id) on delete restrict on update restrict;
alter table t_contact add constraint FK_Reference_1 foreign key (contactTypeId)
references t_contact_type (id) on delete restrict on update restrict;
alter table t_contact add constraint FK_Reference_2 foreign key (userId)
references t_user (id) on delete restrict on update restrict;
alter table t_contact_type add constraint FK_Reference_3 foreign key (userId)
references t_user (id) on delete restrict on update restrict;
以上操作,其中关于Powerdesigner的使用问题,可以参照另一篇Blog(http://pangwu86.iteye.com/blog/910647),这里不再重复。
下一集,将开始讲述后台代码的Dao这层的编写。
分享到:
相关推荐
**Nutz+ExtJS示例教程——后台Service实现** Nutz和ExtJS是两种不同的技术栈,它们在Web开发中有着各自的应用。Nutz是一款基于Java的轻量级框架,它提供了全面的Web开发解决方案,包括ORM、AOP、IOC等。而ExtJS则是...
提供的压缩文件名暗示了教程可能分两部分,"快速开发01.exe"和"快速开发02.exe"可能是教学软件或者演示程序,而"快速开发.txt"可能是教程的文字说明或代码示例。这些资源可以帮助读者更深入地理解和实践所学内容。 ...
在本项目中,"企业级应用项目,springmvc+nutz+redis+rabbitmq+quartz+shiro",开发者采用了一系列高级技术构建了一个具备高可扩展性和低耦合度的系统,旨在提供一个适用于有一定Java基础的学习者进行实践和进阶的...
标题中的“国内技术强强联手之Nutz+KindEditor+LHGDialog+My97DatePicker”揭示了四个关键的IT技术组件,它们在中国的技术社区中被广泛使用,并且经常一起集成到项目中以提供强大的功能。现在,我们将深入探讨这些...
Nutz可以自动映射Java对象到数据库表,支持SQL编写、事务管理等功能。在本项目中,`dao层`的实现将基于Nutz,通过其提供的注解和API来实现对数据库的操作,如增删改查等。 再来看Beetl,这是一款高性能的Java模板...
【basecms(nutz+easyui)】是一款基于Nutz框架和EasyUI前端库构建的CMS(内容管理系统)项目。此系统充分利用了EasyUI的组件化特性,为用户提供了一个直观、简洁且功能丰富的管理界面,而Nutz作为后端开发框架,确保...
每次项目验收写文档是一个很凌乱的事情,作为一个程序员,应该是用技术解决问题。当然有很多工具也可以实现。比如PDman就可以导出word或者pdf文档。 这个案例主要是学习springboot...以及使用nutz poi第三方工具的使用
这个名为"Nutz应用示例"的项目旨在帮助开发者更好地理解和使用Nutz框架。在这个项目中,我们可以看到一个基本的Nutz应用是如何构建的,以及如何与MySQL数据库进行交互。 首先,Nutz框架的核心是其MVC(Model-View-...
NutzCodematic是一款基于Nutz框架的代码生成器工具,专为提高开发效率而设计。它允许开发者连接到多种类型的数据库,然后自动生成与数据库表对应的Nutz框架所需的Bean类。这样,开发者无需手动编写重复的Java代码,...
"数据库课程设计-大三期末" 本资源是关于数据库课程设计的期末项目,涵盖了教务管理系统的设计和实现,包含部分代码和数据库实现的截图。下面是对该资源的详细知识点总结: 一、数据库设计 * 数据库系统是高校...
Nutz框架是一个基于Java语言的轻量级开源框架,它以简单、实用、高效为设计理念,为Java开发者提供了一整套全面的开发解决方案。Nutz框架由一系列子项目组成,包括Nutz IOC(依赖注入)、Nutz DAO(数据访问对象)、...
可以自动生成数据库脚本,生成代码项目,数据库文档生成
SpringMVC+Nutz框架介绍.docxSpringMVC+Nutz框架介绍.docxSpringMVC+Nutz框架介绍.docxSpringMVC+Nutz框架介绍.docxSpringMVC+Nutz框架介绍.docxSpringMVC+Nutz框架介绍.docxSpringMVC+Nutz框架介绍.docxSpringMVC+...
SpringMVC+Nutz框架介绍.pdfSpringMVC+Nutz框架介绍.pdfSpringMVC+Nutz框架介绍.pdfSpringMVC+Nutz框架介绍.pdfSpringMVC+Nutz框架介绍.pdfSpringMVC+Nutz框架介绍.pdfSpringMVC+Nutz框架介绍.pdfSpringMVC+Nutz框架...
在Nutz+jCasbin的环境中,你可以根据业务需求定义各种条件,如用户属性、时间、地点等,来决定用户是否能执行特定操作,增强了权限控制的灵活性和适应性。 3. **策略定义**:jCasbin使用一种声明式的策略语言,称为...
Nutz 是一个轻量级的Java框架,它提供了丰富的功能来支持数据库操作,包括视图的使用。视图在数据库设计中扮演着重要角色,允许开发者以简化的方式查询多个相关表的数据,而无需每次都进行复杂的联接操作。这篇博客...
标题“nutz学习资料2”表明这是一份关于Nutz框架的学习资源集合,Nutz是一个基于Java的轻量级框架,旨在提供全面的MVC支持和企业级开发工具。通过这个压缩包,我们可以期待深入理解Nutz框架的核心特性和使用方法。 ...
"nutz简单综合实例"涉及到的是一个使用Nutz框架进行Web开发的应用示例,这个示例展示了如何通过HTML网页对数据库进行管理操作,实现了Model-View-Controller(MVC)、Inversion of Control(IoC)以及Data Access ...
NutzWk 4.0.x 前后端分离版 (vue + nutz + dubbo) 开发中.. NutzWk 3.3.x CMS+微信+系统+权限+常用功能封装 (beetl / beetl+velocity) NutzWk 2.0.x 试验版(不建议使用) NutzWk 1.0.x 传统版(velocity 支持IE6) ...
以下是一个简单的Nutz DAO示例,用于从数据库中查询数据: ```java import org.nutz.dao.Dao; import org.nutz.dao.DaoFactory; public class Main { public static void main(String[] args) { Dao dao = ...