我必须为组织会议的公司设计一个数据库(作为大学的家庭作业)。 在这些会议中可以参与私人客户或组织(每个组织可以注册少数人)。 目前我需要一些建议如何完成我的项目,因为我的老师说这是不正确的。
这是简短说明:
@Payments
会议/研讨会的付款取决于:
如果与会者是学生 - 他有一些折扣
因为之前的与会者将报名参加会议,所以折扣会更大
这是我几天前设计的架构。
提前致谢
答案 0 :(得分:4)
我很难跟踪你的图表。
关系数据库是normalized。
由于数据库是关于会议和研讨会的,让我们从这些表开始。在创建每个表时,请检查以确保它符合您(或您的用户)概述的条件。
Conference
----------
Conference ID
Conference Name
Conference Description
Conference Total Attendees
Conference Start Date
Conference End Date
Conference Total Price
Conference Day Price
表名通常是单数。这是会议公司预订会议所需的信息。接下来,我们将看看研讨会。
Workshop
--------
Workshop ID
Conference ID
Workshop Name
Workshop Description
Workshop Total Attendees
Workshop Date
Workshop Price
会议ID将研讨会与会议联系起来。研讨会日期必须介于会议开始日期和会议结束日期(含)之间。
请注意,我们尚未考虑客户。我们刚刚创建了会议公司管理其会议和研讨会所需的表格。
以下是我们目前所涵盖的要求:
现在,让我们来看看折扣。
Discount
--------
Discount ID
Discount Type
Discount Description
Discount Percentage
此表将保留学生的折扣和提前注册。每种类型的折扣都有一行。可以提前几次注册折扣。
以下是我们目前所涵盖的要求:
现在,我们已准备好迎接客户和注册人。
Customer
--------
Customer ID
Customer Name
Customer Organization
Customer Address
Customer City
Customer State
Customer Postal Code
Customer Country Code
客户可以是个人(组织空白或无效)或代表组织的人。
此时,我们还没有将客户与会议联系起来。由于会议有许多客户(我们希望),并且(我们希望)为客户举办许多会议,我们需要一个联结表。
Reservation
-----------
Reservation ID
Customer ID
Conference ID
Reservation Date
Payment Date
Early Registration Discount
Total Conference Cost
Number of Attendees
此表允许客户注册会议。我们需要一张表来保存与会者的信息。
Attendee
--------
Attendee ID
Reservation ID
Attendee Name
Attendee Address
...
Discount
Attendee Cost
我们已将与会者与会议联系在一起,但不是参加会议或任何研讨会的日子。为此,我们需要更多的连接表。
Conference Attendance
---------------------
Conference Attendance ID
Attendee ID
Conference ID
Conference Attendance Date
会议出席日期必须介于会议开始日期和会议结束日期(含)之间。
Workshop Attendance
-------------------
Workshop Attendance ID
Attendee ID
Workshop ID
Conference Attendance ID
Workshop Attendance Date
研讨会出席日期必须与会议出席日期相同。研讨会出席日期不是必需的。您可以通过会议出席ID获取会议出席日期。我们保留研讨会出席日期以方便查询。
以下是我们目前所涵盖的要求:
看起来我们已满足所有要求。使用此数据库的Web软件必须强制执行某些时间和折扣限制。