如何为会议和研讨会设计关系数据库
How to design relational database for conferences and workshops
我必须为组织会议的公司设计一个数据库(作为大学的作业)。
在这些会议中可以参加私人客户或组织(每个组织可以注册几个人)。
目前我需要一些如何完成我的项目的建议,因为我的老师说这是非常不正确的。
这里是简短的描述:
- 一些公司组织的会议可能需要一天或几天的时间
- 客户应通过 www 网站注册
- 客户是个人或组织,但与会者是个人
- 组织可以为会议保留一些 space,但应在会议开始前 2 周填写这些信息
- 对于超过一天的会议,客户可以注册任何一天(例如仅第一天)
- 此外,与会议相连的研讨会(客户也可以参加研讨会)但只有当他们在这一天注册会议时(conference-day 有很多研讨会)
- 会议和研讨会名额有限 space
@Payments
conference/workshop 的付款取决于:
如果参加者是学生 - 他有一些折扣
因为较早的与会者会报名参加会议,所以折扣会更大
这是我几天前设计的架构。
.
提前致谢
我很难理解你的图表。
关系数据库是normalized。
由于数据库是关于会议和研讨会的,所以让我们从那些 table 开始。当您创建每个 table 时,请检查以确保它符合您(或您的用户)概述的标准。
会议Table
Conference
----------
Conference ID
Conference Name
Conference Description
Conference Total Attendees
Conference Start Date
Conference End Date
Conference Total Price
Conference Day Price
Table 名字通常是单数。这是会议公司预订会议所需的信息。接下来,我们将看看工作坊。
工作坊Table
Workshop
--------
Workshop ID
Conference ID
Workshop Name
Workshop Description
Workshop Total Attendees
Workshop Date
Workshop Price
会议 ID 将研讨会与会议联系起来。研讨会日期必须在会议开始日期和会议结束日期之间(含)。
请注意,我们甚至还没有考虑客户。我们刚刚创建了会议公司管理其会议和研讨会所需的 table。
以下是我们目前已经满足的要求:
- 一些公司组织的会议可能需要一天或几天的时间
- 会议和研讨会的名额有限 space
现在,让我们来看看折扣。
折扣Table
Discount
--------
Discount ID
Discount Type
Discount Description
Discount Percentage
此 table 将为学生和提前注册提供折扣。每种类型的折扣各占一行。可以有几个早期注册折扣。
以下是我们目前已经满足的要求:
- 学生折扣
- 提前注册折扣
现在,我们已准备好迎接客户和注册人。
客户Table
Customer
--------
Customer ID
Customer Name
Customer Organization
Customer Address
Customer City
Customer State
Customer Postal Code
Customer Country Code
客户可以是个人(组织为空或空)或代表组织的人。
此时,我们还没有将客户与会议联系起来。由于一个会议有很多客户(我们希望),并且(我们希望)一个客户有很多会议,我们需要一个路口table。
预订Table
Reservation
-----------
Reservation ID
Customer ID
Conference ID
Reservation Date
Payment Date
Early Registration Discount
Total Conference Cost
Number of Attendees
这 table 允许客户注册参加会议。我们需要一个 table 来保存与会者信息。
与会者Table
Attendee
--------
Attendee ID
Reservation ID
Attendee Name
Attendee Address
...
Discount
Attendee Cost
我们已将与会者与会议联系起来,但与会议或任何研讨会的日期无关。为此,我们需要更多的连接点 tables.
会议出席人数Table
Conference Attendance
---------------------
Conference Attendance ID
Attendee ID
Conference ID
Conference Attendance Date
会议出席日期必须在会议开始日期和会议结束日期之间(含)。
研讨会出席人数Table
Workshop Attendance
-------------------
Workshop Attendance ID
Attendee ID
Workshop ID
Conference Attendance ID
Workshop Attendance Date
研讨会出席日期必须与会议出席日期相同。研讨会出席日期不是必需的。您可以通过会议出席 ID 获取会议出席日期。为了方便查询,我们保留了Workshop Attendance Date。
以下是我们目前已经满足的要求:
- 客户是个人或组织,但与会者是个人
- 组织可以为会议预留一些 space,但应在会议开始前 2 周完成此信息
- 对于超过一天的会议,与会者可以注册任何一天(例如仅第一天)
- 会议有关联的研讨会(与会者也可以参加研讨会)但只有当他们在这一天注册会议时(会议当天有很多研讨会)
看来我们满足了所有要求。使用此数据库的网络软件将不得不强制执行一些时间和折扣限制。
我必须为组织会议的公司设计一个数据库(作为大学的作业)。 在这些会议中可以参加私人客户或组织(每个组织可以注册几个人)。 目前我需要一些如何完成我的项目的建议,因为我的老师说这是非常不正确的。
这里是简短的描述:
- 一些公司组织的会议可能需要一天或几天的时间
- 客户应通过 www 网站注册
- 客户是个人或组织,但与会者是个人
- 组织可以为会议保留一些 space,但应在会议开始前 2 周填写这些信息
- 对于超过一天的会议,客户可以注册任何一天(例如仅第一天)
- 此外,与会议相连的研讨会(客户也可以参加研讨会)但只有当他们在这一天注册会议时(conference-day 有很多研讨会)
- 会议和研讨会名额有限 space
@Payments
conference/workshop 的付款取决于:
如果参加者是学生 - 他有一些折扣
因为较早的与会者会报名参加会议,所以折扣会更大
这是我几天前设计的架构。
提前致谢
我很难理解你的图表。
关系数据库是normalized。
由于数据库是关于会议和研讨会的,所以让我们从那些 table 开始。当您创建每个 table 时,请检查以确保它符合您(或您的用户)概述的标准。
会议Table
Conference
----------
Conference ID
Conference Name
Conference Description
Conference Total Attendees
Conference Start Date
Conference End Date
Conference Total Price
Conference Day Price
Table 名字通常是单数。这是会议公司预订会议所需的信息。接下来,我们将看看工作坊。
工作坊Table
Workshop
--------
Workshop ID
Conference ID
Workshop Name
Workshop Description
Workshop Total Attendees
Workshop Date
Workshop Price
会议 ID 将研讨会与会议联系起来。研讨会日期必须在会议开始日期和会议结束日期之间(含)。
请注意,我们甚至还没有考虑客户。我们刚刚创建了会议公司管理其会议和研讨会所需的 table。
以下是我们目前已经满足的要求:
- 一些公司组织的会议可能需要一天或几天的时间
- 会议和研讨会的名额有限 space
现在,让我们来看看折扣。
折扣Table
Discount
--------
Discount ID
Discount Type
Discount Description
Discount Percentage
此 table 将为学生和提前注册提供折扣。每种类型的折扣各占一行。可以有几个早期注册折扣。
以下是我们目前已经满足的要求:
- 学生折扣
- 提前注册折扣
现在,我们已准备好迎接客户和注册人。
客户Table
Customer
--------
Customer ID
Customer Name
Customer Organization
Customer Address
Customer City
Customer State
Customer Postal Code
Customer Country Code
客户可以是个人(组织为空或空)或代表组织的人。
此时,我们还没有将客户与会议联系起来。由于一个会议有很多客户(我们希望),并且(我们希望)一个客户有很多会议,我们需要一个路口table。
预订Table
Reservation
-----------
Reservation ID
Customer ID
Conference ID
Reservation Date
Payment Date
Early Registration Discount
Total Conference Cost
Number of Attendees
这 table 允许客户注册参加会议。我们需要一个 table 来保存与会者信息。
与会者Table
Attendee
--------
Attendee ID
Reservation ID
Attendee Name
Attendee Address
...
Discount
Attendee Cost
我们已将与会者与会议联系起来,但与会议或任何研讨会的日期无关。为此,我们需要更多的连接点 tables.
会议出席人数Table
Conference Attendance
---------------------
Conference Attendance ID
Attendee ID
Conference ID
Conference Attendance Date
会议出席日期必须在会议开始日期和会议结束日期之间(含)。
研讨会出席人数Table
Workshop Attendance
-------------------
Workshop Attendance ID
Attendee ID
Workshop ID
Conference Attendance ID
Workshop Attendance Date
研讨会出席日期必须与会议出席日期相同。研讨会出席日期不是必需的。您可以通过会议出席 ID 获取会议出席日期。为了方便查询,我们保留了Workshop Attendance Date。
以下是我们目前已经满足的要求:
- 客户是个人或组织,但与会者是个人
- 组织可以为会议预留一些 space,但应在会议开始前 2 周完成此信息
- 对于超过一天的会议,与会者可以注册任何一天(例如仅第一天)
- 会议有关联的研讨会(与会者也可以参加研讨会)但只有当他们在这一天注册会议时(会议当天有很多研讨会)
看来我们满足了所有要求。使用此数据库的网络软件将不得不强制执行一些时间和折扣限制。