如何为会议和研讨会设计关系数据库

时间:2015-01-13 16:45:03

标签: sql-server database database-design

我必须为组织会议的公司设计一个数据库(作为大学的家庭作业)。 在这些会议中可以参与私人客户或组织(每个组织可以注册少数人)。 目前我需要一些建议如何完成我的项目,因为我的老师说这是不正确的。

这是简短说明:

  • 某些公司组织可能需要一天或多天的会议
  • 客户应通过www网站注册
  • 客户是个人或组织,但会议的与会者是个人
  • 组织可以为会议预留一些空间,但会议开始前2周应填写这些信息
  • 对于需要超过一天的会议,客户可以在任何一天注册(例如仅限第一天)
  • 此外,与会议相关的研讨会(客户也可以参加研讨会)但是,当他们在这一天注册参加会议时(会议日有许多研讨会)
  • 会议和研讨会的空间有限

@Payments

  • 会议/研讨会的付款取决于:

    1. 如果与会者是学生 - 他有一些折扣

    2. 因为之前的与会者将报名参加会议,所以折扣会更大

这是我几天前设计的架构。

enter image description here

提前致谢

1 个答案:

答案 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获取会议出席日期。我们保留研讨会出席日期以方便查询。

以下是我们目前所涵盖的要求:

  • 客户是个人或组织,但会议的与会者是个人
  • 组织可以为会议预留一些空间,但会议开始前2周应该完成此信息
  • 对于需要超过一天的会议,与会者可以注册任何一天(例如仅限第一天)
  • 会议已连接研讨会(与会者也可以参加研讨会)但是,当他们在这一天注册会议时(会议日有很多研讨会)

看起来我们已满足所有要求。使用此数据库的Web软件必须强制执行某些时间和折扣限制。