赞
踩
在实际的毕业设计开发中,特别是设计阶段或写论文的时候,都离不开数据库设计,其中数据库设计最重要的就是逻辑设计阶段和物理设计阶段。逻辑设计就离不开数据库的ER图,物理设计阶段就离不开ER图到表的转换,本文章就是解决这个问题。
本文主要以《学生餐厅优惠管理系统》为例,全面教你如何做好数据库的ER图和转换关系。
根据项目中的需求和业务场景,需要找到关系和属性,比如像《学生餐厅优惠管理系统》我找到的关系与属性如下图:

上图我是直接把ER总图也画进去了,如果一个项目中表很多,业务很复杂,比如有7-8个表,这种就需要单独画ER总图,否则画在一起是画不全的。
根据上面的ER图进行表的转换,我直接把SQL写下面的,供参考学习,主要就是把属性转为字段,把关系转为表,详见下面的:
- CREATE TABLE dk (
- id int(0) NOT NULL AUTO_INCREMENT,
- bh varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- name varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- zmoney decimal(10, 0) NULL DEFAULT NULL,
- lb varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- mj varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- PRIMARY KEY (id) USING BTREE
- ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-
- -- ----------------------------
- -- 测试数据
- -- ----------------------------
- INSERT INTO dk VALUES (1, '001', '瓦香鸡米饭', 80000, '张三', '20');
- INSERT INTO dk VALUES (2, '002', '驴蹄子面', 75000, '李四', '18');
- INSERT INTO dk VALUES (3, '003', '青春麻辣烫', 60000, '王五', '16');
- INSERT INTO dk VALUES (4, '004', '鸡蛋灌饼', 55000, '赵六', '15');

- CREATE TABLE yh (
- id int(0) NOT NULL AUTO_INCREMENT,
- bh varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- content varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- ktime varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- jtime varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- PRIMARY KEY (id) USING BTREE
- ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-
- -- ----------------------------
- -- 测试数据
- -- ----------------------------
- INSERT INTO yh VALUES (1, '001', '瓦香鸡米饭累计消费满一百积分可以享受九五折优惠', '2023——2024学年第一学期开始', '2023——2024学年第二学期结束');
- INSERT INTO yh VALUES (2, '002', '累计每获得五十积分可以兑换五元代金券,驴蹄子面代金券可用于众生园超市购物以及自己档口', '2023——2024学年第一学期开始', '2023——2024学年第二学期结束');
- INSERT INTO yh VALUES (3, '003', '一次性消费满十二元可以获得一张一元代金券,麻辣烫代金券只能用于自己档口', '2023——2024学年第一学期开始', '2023——2024学年第二学期结束');
- INSERT INTO yh VALUES (4, '004', '鸡蛋灌饼累计消费满八十元,购买本档口所有产品均减一元', '2023——2024学年第一学期开始', '2023——2024学年第二学期结束');

- CREATE TABLE student (
- number varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- name varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- phone varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
- ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-
- -- ----------------------------
- -- 测试数据
- -- ----------------------------
- INSERT INTO student VALUES ('2021151513', '张三', '16634045578');
- INSERT INTO student VALUES ('2021151519', '李四', '15835603866');
- INSERT INTO student VALUES ('2021151527', '王五, '15935759166');
- INSERT INTO student VALUES ('2021151546', '赵六, '16636127530');
- CREATE TABLE hy (
- id varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- times date NULL DEFAULT NULL,
- sid varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
- ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-
- -- ----------------------------
- -- 测试数据
- -- ----------------------------
- INSERT INTO hy VALUES ('202300001', '2023-10-01', '银卡');
- INSERT INTO hy VALUES ('202300002', '2023-10-10', '铜卡');
- INSERT INTO hy VALUES ('202300003', '2023-11-11', '金卡');
- INSERT INTO hy VALUES ('202300004', '2024-03-03', '金卡');
同时为了方便同学,我把画完的图放在了:https://www.processon.com/view/6489afe642fb7c008327a3dc
需要的直接克隆修改成自己的业务就可以了,如有不明白的地方或画不出来的,也可以找我帮你指点一下。

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。