3.2 数据组织

3.2.1 E-R 图转换为关系模型

宿舍与学生、员工,以及学生与临时设备、来访者之间均为 1:n 的关系。根据数据库设计原则,可以将这些关系与 n 端实体合并。具体转换如下:

1. 学生住宿表: (学号, 姓名, 性别, 专业, 入住时间, 联系方式, 楼号, 宿舍号)

2. 宿舍表: (楼号, 宿舍号, 电话号码, 可住人数, 已住人数)

3. 员工表: (员工号, 员工姓名, 性别, 职位, 家庭地址, 联系方式, 楼号)

4. 临时设备租赁表: (设备号, 设备名, 租赁日期, 归还日期, 租赁费用, 学号)

5. 报修表: (楼号, 宿舍号, 物品号, 报修原因, 提交日期, 解决日期, 报修费用)

6. 水电费表: (楼号, 宿舍号, 月份, 用电量, 电费, 用水量, 水费)

7. 来访者表: (来访人姓名, 被访人姓名, 所属关系, 证件名称, 来访日期, 来访时间, 结束时间, 学号)

3.2.2 逻辑结构定义

根据上述分析,得到七个数据表的逻辑结构如下:

学生住宿表: 记录学生住宿的基本信息。

| 属性名 | 类型 | 长度 | 完整性约束 | 备注 |

| ---------- | -------- | ---- | ---------- | -------------- |

| 学号 | char | 8 | 主码 | 住宿学生学号 |

| 姓名 | Varchar | 10 | 非空 | 住宿学生姓名 |

| 性别 | char | 2 | 男或女,默认值男 | 学生性别 |

| 专业 | Varchar | 20 | 非空 | 学生专业 |

| 联系方式 | char | 11 | 可为空 | 联系方式 |

| 入住时间 | datetime | 8 | 非空 | 新生搬入时间 |

| 楼号 | char | 2 | 外码 | 学生住的楼号 |

| 宿舍号 | char | 3 | 外码 | 学生住的宿舍号 |

员工表: 记录员工的基本信息。

| 属性名 | 类型 | 长度 | 完整性约束 | 备注 |

| ---------- | -------- | ---- | ---------- | ---------- |

| 员工号 | char | 8 | 主码 | |

| 员工姓名 | Varchar | 10 | 非空 | |

| 性别 | char | 2 | 男或女 | |

| 职位 | Varchar | 20 | 非空 | |

| 家庭地址 | Varchar | 50 | 非空 | |

| 联系方式 | char | 11 | 可为空 | |

| 楼号 | char | 2 | 外码 | 员工所在楼号 |

(其他表格的逻辑结构定义省略)