在EA中画ER图和数据模型图

ER图和数据模型图可以互相转换,使数据库表设计非常容易.

ER图用于需求规格说明书.

数据模型图用于概要设计.

由数据模型图生成的SQL建表操作脚本, 稍加修改,就可以在程序中使用.


由ER图和数据模型图,互相转换, 可以很容易的添加主键和外键, 普通字段, 以及字段的精确定义.

可以从一个粗糙的ER草稿图,变成最终可用的数据库表设计.


实验环境: win7x64 + EA8.0.858

将EA中的ER图对应的数据库, 示例中选mysql



建立ER图草稿

转换成数据模型图

在数据模型图中增加需要的字段, 或设置ER图没有设置的字段细节定义.

主键定义完的数据模型图, 在3个表中都存在一个自增主键 "id".

将数据模型图转成ER图, 可以看到数据实体属性已经变了.

在ER图中, 手填也行. 不过由工具填更靠谱~.

花费20%的力气,享受80%的好处, 懒人都是这么想的~

看到属性的变化如下:

增加外键.

在数据模型图中添加外键属性, 连接主表和外键对应的表.

我应该连接个人信息表, 因为user_id对应的是个人信息表中的id字段. 这里不改了,示意一下.

在外键设置框中设置外键.

FK means Foreign Keys

加了外键的数据模型图.


数据模型图转成ER图后, tbl_employee_info多了2个外键.

在ER图转数据模型图时, 发现有BUG. 外键不正确. 看来就得从数据模型图项ER图转换了. 转换后的图给需求规格说明书用.

这有点本末导致了, 很想看看EA9.3是不是已经修复了这个BUG.

真有bug..., 在数据模型图中, 重新添加了一次外键.

在每个表中, 继续添加非外键的字段, 完成数据模型图.

从最终的数据模型图中转换出的ER图:


生成供程序参考用的SQL脚本


生成的SQL脚本如下:

/**  -------------------------------------------------- */
/**  Generated by Enterprise Architect Version 8.0.858*/
/**  Created On : 星期五, 30 十一月, 2012 */
/**  DBMS       : MySql */
/**  -------------------------------------------------- */

USE TestDb
;


/** Drop Tables, Stored Procedures and Views */

DROP TABLE IF EXISTS tbl_personal_info
;
DROP TABLE IF EXISTS tbl_job
;
DROP TABLE IF EXISTS tbl_employee_info
;

/** Create Tables */
CREATE TABLE tbl_personal_info
(
	id BIGINT NOT NULL,
	name CHAR(64) NULL,
	age INTEGER NULL,
	tm_stamp TIMESTAMP NULL,
	PRIMARY KEY (id),
	UNIQUE UQ_tbl_personal_info_id(id)
) 
;


CREATE TABLE tbl_job
(
	id BIGINT NOT NULL,
	job_type INTEGER NULL,
	job_desc TEXT NULL,
	tm_stamp DATETIME NULL,
	PRIMARY KEY (id),
	UNIQUE UQ_tbl_job_id(id)
) 
;


CREATE TABLE tbl_employee_info
(
	id BIGINT NOT NULL,
	user_id BIGINT NULL,
	job_id BIGINT NULL,
	grade INTEGER NULL,
	tm_stamp TIMESTAMP NULL,
	PRIMARY KEY (id),
	UNIQUE UQ_tbl_employee_info_id(id),
	KEY (job_id),
	KEY (user_id)
) 
;





/** Create Foreign Key Constraints */
ALTER TABLE tbl_employee_info ADD CONSTRAINT FK_tbl_employee_info_tbl_job 
	FOREIGN KEY (job_id) REFERENCES tbl_job (id)
;

ALTER TABLE tbl_employee_info ADD CONSTRAINT FK_tbl_employee_info_tbl_personal_info 
	FOREIGN KEY (user_id) REFERENCES tbl_personal_info (id)
;


总结:

  如果要手工画出最终转换出来的这种ER图, 不好画. 对EA自定义的那些常量不熟悉, 也不想熟悉.

  ER图草稿转换成数据模型图, 就只能用数据模型图, 不能再从ER图再转成原来的数据模型图, 要不自己手工添加的字段定义和外键就废了~

  从手工画的ER图,转成的数据模型图的字段参数都没有, 需要自己手工添加.

  我宁可从数据模型图向ER图转换~~, 虽然有点本末倒置.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值