需要实现的主要功能
1. 登录
用户在启动 SET 系统时显示的第一个表单是登录,如图 1 所示。此功能仍在开发中,目前要求用户(销售代理)在成功登录之前输入他们的用户名和密码进行验证 进入系统。 密码加密/散列等安全功能将在稍后阶段实施(而不是作为本任务的一部分)。 登录后,用户将被带到预订列表屏幕以查看其相关客户对各种剧院表演的预订。
2. 查看预定列表
用户登录后,会显示所有关联预订的列表,如下图 2 所示。此预订列表必须按客户的全名排序。 每个预订可能有也可能没有销售助理,也可以有客户姓名、演出名称、演出日期和预订说明的描述。 如果销售代理被记录为协助客户进行他/她的剧院表演预订的用户,则预订与销售代理相关联。
3. 寻找预定
用户可以通过在“查找”按钮上方的字段中输入单词或短语(“关键字”)来搜索所有预订,如图 3 所示,然后单击“查找”。 如果指定了此类关键字,则只会检索在其客户全名、预订代理全名或表演中包含此词或短语的预订并将其显示在列表中。 搜索还必须忽略区分大小写。 例如,给定搜索关键字“lion”,Find 将返回所有在客户全名、预订代理全名或表演中包含“lion”一词的预订。 使用空白/空关键字字段进行搜索将显示所有已登录用户的关联预订。 返回的任何搜索结果必须按客户的全名排序。
4. 查看预定信息
从预订列表中选择客户的全名将显示该预订的详细信息,如图 4 所示。预订说明的说明出现在表单右下角的大文本区域中。
5. 添加预定
用户还可以通过单击“添加新预订”按钮,在出现的弹出对话框中输入预订详细信息,然后单击“添加预订”来添加新预订,如图 5 所示。用户必须输入破折号 ('-') 作为 如果没有与该预订关联的代理,则为预订代理。
6. 更新预定
用户还可以通过修改预订详细信息屏幕中的数据来更新预订,如图 6 所示,然后单击 Update Booking 按钮。
刷新/重置按钮可用于刷新数据库中的预订详细信息,允许用户检查是否已进行更改,或查看预订是否已更新。
实现部分
数据库SQL模型
DROP TABLE IF EXISTS BOOKING;
DROP TABLE IF EXISTS CUSTOMER;
DROP TABLE IF EXISTS AGENT;
CREATE TABLE AGENT
(
AGENTID SERIAL PRIMARY KEY,
USERNAME VARCHAR(20) NOT NULL UNIQUE,
a_FIRSTNAME VARCHAR(50) NOT NULL,
a_LASTNAME VARCHAR(50) NOT NULL,
PASSWORD VARCHAR(20) NOT NULL
);
INSERT INTO AGENT (USERNAME,a_FIRSTNAME,a_LASTNAME,PASSWORD) VALUES
('-','N/A','','111');
INSERT INTO AGENT (USERNAME,a_FIRSTNAME,a_LASTNAME,PASSWORD) VALUES
('novak','Novak','Djokovic','222');
INSERT INTO AGENT (USERNAME,a_FIRSTNAME,a_LASTNAME,PASSWORD) VALUES
('jeff','Jeff','Alexander','333');
INSERT INTO AGENT (USERNAME,a_FIRSTNAME,a_LASTNAME,PASSWORD) VALUES
('marie','Mariana','Johnson','444');
CREATE TABLE CUSTOMER
(
EMAIL VARCHAR(50) PRIMARY KEY,
c_FIRSTNAME VARCHAR(50) NOT NULL,
c_LASTNAME VARCHAR(50) NOT NULL
);
INSERT INTO CUSTOMER (EMAIL,c_FIRSTNAME,c_LASTNAME) VALUES
('[email protected]','Bob','Smith');
INSERT INTO CUSTOMER (EMAIL,c_FIRSTNAME,c_LASTNAME) VALUES
('[email protected]','Anthony','Brown');
INSERT INTO CUSTOMER (EMAIL,c_FIRSTNAME,c_LASTNAME) VALUES
('[email protected]',&#