数据库设计java,,

1.公司拥有多幢公寓楼,每幢公寓楼有唯一的楼编号和地址。每幢公寓楼中有多套公寓,每套公寓在楼内有唯一的编号(不同公寓楼内的公寓号可相同)。系统需记录每套公寓的卧室数和卫生间数。
2.员工和租客在系统中有唯一的员工和租客编号。
3.对于每个租客,系统需记录姓名、多个联系电话、一个银行账号(方便自动扣房租)、一个紧急联系人的姓名及联系电话。
4.系统需记录每个员工的姓名、类别、一个联系电话和月工资。员工类别可以是经理或维修工,也可兼任。每个经理可以管理多幢公寓楼。每幢公寓楼必须由一个经理管理。系统需记录每个维修工的业务技能,如水暖维修、电工、木工等。
5.租客租赁公寓必须和公司签订租赁合同。一份租赁合同通常由一个或多个租客(合租)与该公寓楼的经理签订,一个租客也可租赁多套公寓。合同内容应包含签订日期、开始时间租期、押金和月租金。
租期内,公寓内设施如出现问题,租客可在系统中进行故障登记,填写故障描述,每项故障由系统自动生成唯一的故障编号,由公司派维修工进行故障维修,系统需记录每次维修的维修日期和维修内容。

回答ER图和建表就可以了

/*
Navicat Premium Data Transfer

Source Server : 127
Source Server Type : MySQL
Source Server Version : 50726
Source Host : localhost:3306
Source Schema : test

Target Server Type : MySQL
Target Server Version : 50726
File Encoding : 65001

Date: 20/12/2021 17:38:42
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;


-- Table structure for apartment


DROP TABLE IF EXISTS apartment;
CREATE TABLE apartment (
id int(11) NOT NULL AUTO_INCREMENT,
num varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '编号',
address varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '地址',
b_id int(10) NULL DEFAULT NULL COMMENT '所属公寓楼',
c_num varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
d_num varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
create_time datetime(0) NULL DEFAULT NULL,
PRIMARY KEY (id) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;


-- Table structure for apartment_build


DROP TABLE IF EXISTS apartment_build;
CREATE TABLE apartment_build (
id int(11) NOT NULL AUTO_INCREMENT,
num varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '编号',
address varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '地址',
manger_id int(10) NULL DEFAULT NULL COMMENT '经理ID',
create_time datetime(0) NULL DEFAULT NULL,
PRIMARY KEY (id) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;


-- Table structure for contract


DROP TABLE IF EXISTS contract;
CREATE TABLE contract (
id int(11) NOT NULL,
k_id varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '签的公寓id',
q_time datetime(0) NULL DEFAULT NULL COMMENT '签订时间',
s_time datetime(0) NULL DEFAULT NULL COMMENT '开始时间',
kmoney varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
mmoney varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
PRIMARY KEY (id) USING BTREE
) ENGINE = MyISAM CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;


-- Table structure for fault


DROP TABLE IF EXISTS fault;
CREATE TABLE fault (
id int(11) NOT NULL,
k_id varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '公寓id',
s_time datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
message varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '问题描述',
u_type smallint(2) NULL DEFAULT 2 COMMENT '1完成2未完成',
end_time datetime(0) NULL DEFAULT NULL COMMENT '完成时间',
about_content varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '完成工作内容',
PRIMARY KEY (id) USING BTREE
) ENGINE = MyISAM CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;


-- Table structure for staff


DROP TABLE IF EXISTS staff;
CREATE TABLE staff (
id int(11) NOT NULL,
u_num varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '员工编号',
u_name varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
u_phone int(11) NULL DEFAULT NULL,
u_type smallint(3) NULL DEFAULT NULL COMMENT '1维修工2经理',
kill varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '技能',
PRIMARY KEY (id) USING BTREE
) ENGINE = MyISAM CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;


-- Table structure for tenant


DROP TABLE IF EXISTS tenant;
CREATE TABLE tenant (
id int(11) NOT NULL,
u_num varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '租客编号',
u_name varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
u_phone int(11) NULL DEFAULT NULL,
u_card varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
about_name varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
about_phone varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
PRIMARY KEY (id) USING BTREE
) ENGINE = MyISAM CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

公寓楼表: ID 地址 经理ID(员工ID)
公寓表: ID 公寓楼ID 卧室数 卫生间数 房间号(公寓号)
员工表: ID 姓名 电话 工资
租客表: ID 姓名 联系电话(逗号分隔) 银行卡号 紧急联系人姓名 紧急联系人电话
员工类别_员工表: ID 员工类别ID 员工ID
员工类别表; ID 类型(经理 维修) 技能
合同表: ID 签订日期 开始时间 押金 月租金
合同_租客表 : ID 合同ID 租客ID
故障表 : ID 故障描述 公寓ID 创建时间 是否完成 完成时间 维修内容

自己看着整就行了,有需要就建几个中间表,自己建挺有意思