首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为会议和研讨会设计关系数据库

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

Stack Overflow用户
提问于 2015-01-13 16:45:02
回答 1查看 2.3K关注 0票数 0

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

以下是简短的描述:

  • 一些公司组织会议,可能需要一天或更多天。
  • 顾客应透过www网站注册。
  • 客户是个人或组织,但出席会议的人是个人。
  • 组织可以为会议预留一些空间,但是在会议开始前两周,这些信息应该被填充。
  • 对于需要超过一天的会议,客户可以在任何一天注册(例如,仅在第一天)。
  • 此外,会议也是相互关联的工作坊(客户也可以参加研讨会),但只有在今天登记参加会议时(会议日有许多研讨会)。
  • 会议和讲习班的空间有限

@付款

  • 会议/讲习班的付款取决于:
代码语言:javascript
复制
1. if attendee is a student -  he has some discount
2. as earlier attendee will sign up for conference then discount will be bigger

这是我几天前设计的模式。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-13 18:03:37

我很难理解你的图表。

关系数据库是归一化

既然数据库是关于会议和研讨会的,那么让我们从这些表开始。在创建每个表时,请检查以确保它符合您(或您的用户)概述的标准。

会议桌

代码语言:javascript
复制
Conference
----------
Conference ID
Conference Name
Conference Description
Conference Total Attendees
Conference Start Date
Conference End Date
Conference Total Price
Conference Day Price

表名通常是单数的。这是会议公司预订会议所需的信息。接下来,我们来看看工作坊。

车间表

代码语言:javascript
复制
Workshop
--------
Workshop ID
Conference ID
Workshop Name
Workshop Description
Workshop Total Attendees
Workshop Date
Workshop Price

会议将讲习班与会议联系起来。研讨会日期必须介于会议开始日期和会议结束日期之间(包括)。

请注意,我们甚至还没有考虑客户。我们刚刚创建了会议公司管理会议和研讨会所需的表格。

以下是我们到目前为止所讨论的要求:

  • 一些公司组织会议,可能需要一天或更多天。
  • 会议和讲习班的空间有限

现在,让我们来看看折扣。

折扣表

代码语言:javascript
复制
Discount
--------
Discount ID
Discount Type
Discount Description
Discount Percentage

这张桌子将提供学生折扣和提前注册。每种折扣都有一行。可以有几个早期登记折扣。

以下是我们到目前为止所讨论的要求:

  • 学生折扣
  • 提前登记折扣

现在,我们准备好对付客户和注册人。

客户表

代码语言:javascript
复制
Customer
--------
Customer ID
Customer Name
Customer Organization
Customer Address
Customer City
Customer State
Customer Postal Code
Customer Country Code

客户可以是个人(组织为空或空),也可以是代表组织的人。

到目前为止,我们还没有把客户与会议联系在一起。由于有许多客户参加一个会议(我们希望)和(我们希望)许多会议为客户,我们需要一个连接表。

预约表

代码语言:javascript
复制
Reservation
-----------
Reservation ID
Customer ID
Conference ID
Reservation Date
Payment Date
Early Registration Discount
Total Conference Cost 
Number of Attendees

此表允许客户注册会议。我们需要一张桌子来保存与会者的信息。

出席者桌

代码语言:javascript
复制
Attendee
--------
Attendee ID
Reservation ID
Attendee Name
Attendee Address
...
Discount
Attendee Cost

我们把与会者与会议联系在一起,但与会议或任何讲习班的日期无关。为此,我们还需要几张接线桌。

会议出席率表

代码语言:javascript
复制
Conference Attendance
---------------------
Conference Attendance ID
Attendee ID
Conference ID
Conference Attendance Date

会议出席日期必须介于会议开始日期和会议结束日期之间(包括在内)。

工作坊出席人数表

代码语言:javascript
复制
Workshop Attendance
-------------------
Workshop Attendance ID
Attendee ID
Workshop ID
Conference Attendance ID
Workshop Attendance Date

讲习班出席日期必须与会议出席日期相同。不需要讲习班的出席日期。您可以通过您的会议出席ID获取会议出席日期。为了查询方便,我们保留了工作坊出席日期。

以下是我们到目前为止所讨论的要求:

  • 客户是个人或组织,但出席会议的人是个人。
  • 组织可以为会议预留一些空间,但在会议开始前2周,这些信息应该完成。
  • 对于需要超过一天的会议,与会者可以在任何一天注册(例如,仅在第一天)。
  • 会议有联系的讲习班(与会者也可以参加讲习班),但只有在今天登记参加会议时(会议日有许多讲习班)。

看起来我们满足了所有的要求。使用此数据库的web软件将不得不强制执行一些时间和折扣限制。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27927174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档