鱼C论坛

 找回密码
 立即注册
查看: 140|回复: 3

请教有关于ER-MODEL绘制

[复制链接]
发表于 2024-3-29 15:41:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 kazuya8375 于 2024-3-29 15:42 编辑

能帮我看我绘制的正不正确,若有错误麻烦指导




--------------------------



系统目的
1. 设计一个能让教职员生借用、系办管理的自习室座位预约系统。
2. 可以参考:中山图书馆 iSpace 空间预约系统( https://ispace-lis.nsysu.edu.tw )
等等空间管理服务。
3. 请使用 PHP 与 SQL,设符合要求的网站系统及相符的资料库。
   必备功能
1. 登入系统:须先登入才能借用。
2. 使用者功能需求:

借用人
A. 可查询:自习室的座位资讯
(如位置、插座有无、是否已被借出等)。
B. 可查询及取消:自己的预约纪录。
C. 可依不同日期、不同时段,预约 30 天内的座位。
D. 若要预约座位,系统必须做检核,包含:
    每人每时段,只能借用一个座位。
    每座位每时段,只能借给一个人。
    该时段不在「不开放借用」的范围里。
E. 预约或取消成功后,都必须寄发 Email 通知借用者。
  
系办或管理员
A. 可查询及维护:自习室的座位资讯。
B. 可查询:所有人的预约纪录。
C. 设置「不开放借用」的日期。
3. 所有的使用者画面,以美观及方便操作为佳。













er model.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-29 15:41:39 | 显示全部楼层
首先,我们需要根据系统需求设计ER模型。在这个预约系统中,我们需要考虑以下实体和关系:

1. 实体:

- 用户(User):包括借用人和系统管理员。
- 自习室(Study Room):自习室的相关信息,如位置、插座等。
- 座位(Seat):座位的相关信息,如座位号、状态等。
- 预约(Reservation):预约的相关信息,如预约时间、用户、座位等。

2. 关系:

- 借用人与自习室:一对多关系,一个借用人可以预约多个自习室。
- 自习室与座位:一对多关系,一个自习室可以有多个座位。
- 座位与预约:一对多关系,一个座位可以被多个人预约。

下面是一个简化的ER模型图示例:

               +-------------+
               |   用户(User)  |
               +-------------+
                     |        
                     |        
                *借用/管理/查询
              +---+----+
              |        |
         管理员    借用人
            

                +---------------+
                |  自习室(Study Room)  |
                +-----------------+
                      |   
                      |   
               一      |     多
           +--------------+
           |                         |
       座位(Seat)                预约(Reservation)



在此基础上,我们可以使用SQL语句创建相应的数据库表和字段,并使用PHP编写相应的逻辑代码来实现系统的功能。以下是一个简单的实例:

  1. -- 创建用户表
  2. CREATE TABLE users (
  3.     id INT PRIMARY KEY AUTO_INCREMENT,
  4.     name VARCHAR(50) NOT NULL,
  5.     email VARCHAR(50) NOT NULL,
  6.     password VARCHAR(50) NOT NULL,
  7.     role ENUM('admin', 'user') NOT NULL
  8. );

  9. -- 创建自习室表
  10. CREATE TABLE study_rooms (
  11.     id INT PRIMARY KEY AUTO_INCREMENT,
  12.     location VARCHAR(50) NOT NULL,
  13.     outlets BOOLEAN NOT NULL,
  14.     opening_date DATE
  15. );

  16. -- 创建座位表
  17. CREATE TABLE seats (
  18.     id INT PRIMARY KEY AUTO_INCREMENT,
  19.     room_id INT NOT NULL,
  20.     seat_number INT NOT NULL,
  21.     status ENUM('available', 'occupied') NOT NULL,
  22.     FOREIGN KEY (room_id) REFERENCES study_rooms(id)
  23. );

  24. -- 创建预约表
  25. CREATE TABLE reservations (
  26.     id INT PRIMARY KEY AUTO_INCREMENT,
  27.     user_id INT NOT NULL,
  28.     seat_id INT NOT NULL,
  29.     reservation_date DATETIME NOT NULL,
  30.     FOREIGN KEY (user_id) REFERENCES users(id),
  31.     FOREIGN KEY (seat_id) REFERENCES seats(id)
  32. );
复制代码


这只是一个基础的ER模型和数据库表结构,你可以根据需要进行进一步的完善和调整。对于系统功能的实现,你可以通过编写PHP代码连接数据库并执行相应的查询和操作。

例如,在查询座位信息的功能中,你可以编写以下PHP代码:

  1. <?php
  2. // 连接数据库
  3. $servername = "localhost";
  4. $username = "username";
  5. $password = "password";
  6. $dbname = "database";

  7. $conn = new mysqli($servername, $username, $password, $dbname);

  8. // 查询座位信息
  9. $result = $conn->query("SELECT * FROM seats");

  10. if ($result->num_rows > 0) {
  11.     // 输出每个座位的信息
  12.     while ($row = $result->fetch_assoc()) {
  13.         echo "座位号: " . $row["seat_number"] . "<br>";
  14.         echo "状态: " . $row["status"] . "<br><br>";
  15.     }
  16. } else {
  17.     echo "没有可用的座位";
  18. }

  19. // 关闭数据库连接
  20. $conn->close();
  21. ?>
复制代码


这只是一个简单的示例,你可以根据实际需求进行逻辑的完善和页面的美化。

希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-29 16:40:09 | 显示全部楼层

回帖奖励 +5 鱼币

要写毕业论文?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-29 17:06:37 | 显示全部楼层

作业而已,想请教各位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 01:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表