kazuya8375 发表于 2024-3-29 15:41:21

请教有关于ER-MODEL绘制

本帖最后由 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. 所有的使用者画面,以美观及方便操作为佳。













FishC 发表于 2024-3-29 15:41:39

首先,我们需要根据系统需求设计ER模型。在这个预约系统中,我们需要考虑以下实体和关系:

1. 实体:

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

2. 关系:

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

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

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

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



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

-- 创建用户表
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL,
    password VARCHAR(50) NOT NULL,
    role ENUM('admin', 'user') NOT NULL
);

-- 创建自习室表
CREATE TABLE study_rooms (
    id INT PRIMARY KEY AUTO_INCREMENT,
    location VARCHAR(50) NOT NULL,
    outlets BOOLEAN NOT NULL,
    opening_date DATE
);

-- 创建座位表
CREATE TABLE seats (
    id INT PRIMARY KEY AUTO_INCREMENT,
    room_id INT NOT NULL,
    seat_number INT NOT NULL,
    status ENUM('available', 'occupied') NOT NULL,
    FOREIGN KEY (room_id) REFERENCES study_rooms(id)
);

-- 创建预约表
CREATE TABLE reservations (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    seat_id INT NOT NULL,
    reservation_date DATETIME NOT NULL,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (seat_id) REFERENCES seats(id)
);

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

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

<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

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

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

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

// 关闭数据库连接
$conn->close();
?>

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

希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

不二如是 发表于 2024-3-29 16:40:09

要写毕业论文?

kazuya8375 发表于 2024-3-29 17:06:37

不二如是 发表于 2024-3-29 16:40
要写毕业论文?

作业而已,想请教各位
页: [1]
查看完整版本: 请教有关于ER-MODEL绘制