
《数据库系统原理》课程设计
系统实现报告
学号:______37060322______
姓名:_______ 张哲 _ _______
2009 年 12 月 31 日

一.系统功能需求分析
本系统是软件所 MDT 本科生组的网站。网站职责是记录每个 idea 的产生过程,对历
届成员创新能力的培养提供帮助;也记录了孵化出的项目以及历届成员的信息,便于小组
的延续性。同时要能发布一些信息。
主要功能有:
1. 小组成员可以查看,发布 message
2. 小组成员可以发布新的 idea,修改自己发布的 idea。
2.1 修改不会删除原来的 idea,只是将原 idea 变成 oldidea,这样可以看到一个 idea 是如
何从不清晰的意向慢慢演变过来的过程。
2.2 用户和游客可以对 idea 进行评论,添加 ideacomment,也能区分出评论是基于哪个
版本的,是 newideacomment 还是 oldideacomment。
3. 小组成员可以添加新的 project,修改自己参与 project 的信息。游客和用户可以添加评
论 projectcomment。
4. 小组成员可以查看其它 user 的信息。
5. 管理员可以对所有实体进行 CRUD 操作。
二.系统功能结构设计
前台应用分为两个应用程序。mdtweb 和 mdtwebforadmin,共用数据库。
两个应用采取相同的架构。
客户端的请求发给 Dispatcher,再发给 Controller 负责逻辑处理,Model 封装了所有与数据库相关的操
作,View 层负责所有的显示。
功能分 user 管理,idea 管理,project 管理,message 管理,权限控制 5 大部分。
其中 user 管理由 usersController 负责其逻辑。
idea 管理由 ideacontroller 和 ideacommentcontroller 负责其逻辑。
project 管理由 projectcontroller 和 projectcommentcontroller 负责其逻辑。
message 管理由 messagecontroller 负责其逻辑。
权限控制涉及每一个 controller。
三、数据库基本表的定义

CREATE TABLE `acos` (
`id` int(10) NOT NULL auto_increment,
`parent_id` int(10) default NULL,
`model` varchar(255) default NULL,
`foreign_key` int(10) default NULL,
`alias` varchar(255) default NULL,
`lft` int(10) default NULL,
`rght` int(10) default NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `aros` (
`id` int(10) NOT NULL auto_increment,
`parent_id` int(10) default NULL,
`model` varchar(255) default NULL,
`foreign_key` int(10) default NULL,
`alias` varchar(255) default NULL,
`lft` int(10) default NULL,
`rght` int(10) default NULL,
PRIMARY KEY (`id`)
) ;
CREATE TABLE `aros_acos` (
`id` int(10) NOT NULL auto_increment,
`aro_id` int(10) NOT NULL,
`aco_id` int(10) NOT NULL,
`_create` varchar(2) NOT NULL default '0',
`_read` varchar(2) NOT NULL default '0',
`_update` varchar(2) NOT NULL default '0',
`_delete` varchar(2) NOT NULL default '0',
`_admin` varchar(2) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `ARO_ACO_KEY` (`aro_id`,`aco_id`)
) ;
CREATE TABLE `ideas` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(100) NOT NULL,
`content` mediumtext NOT NULL,
`user_id` int(11) NOT NULL,
`version` int(11) NOT NULL,
`datetime` datetime default NULL,
评论18