student
提出新的topic
。 adviser
接受或拒绝topic
。如果他接受topic
,则顾问将使用student
监督topic
。
现在这就是它的所在。
在meeting
和student
之间安排adviser
,用于与该主题相关的讨论。
如果我制作meeting_table
。我该如何推荐meeting
?关于被选中的topic
?如果是这种情况,则topic_id
将成为外键。
或者我应该使用advisor_id
和student_id
作为外键来引用它?
哪种方法更简单?因为我将在完成数据库设计后制作一个Web应用程序。
答案 0 :(得分:1)
基于my answer to your previous question,我会像这样扩展ERD:
学生在安排会议之前需要有一个主题和一个顾问。通过加入会议可以找到主题和顾问 - >学生 - > [顾问|课题]
答案 1 :(得分:0)
如果会议涉及某个主题,学生和顾问,那么它不应该引用这三个主题吗?或者对于更通用的会议模式,我会使用类似的东西:
ATTENDEES
id
name
role ; i.e. 'student', 'advisor', etc
ROOM
id
description
TOPIC
id
description
MEETING
id
topic_id ; FK to TOPIC.id
room_id ; FK to ROOM.id
description
MEETING_ATTENDANCE
attendee_id ; FK to ATTENDEE.id
meeting_id ; FK TO MEETING.id
此架构允许任意数量的与会者(因此您可以有一名顾问和三名学生等)。而对于奖励积分,它也会引入会议室ID。
答案 2 :(得分:0)
我建议与meeting_id会面,然后使用meeting_id和topic_id与另一个表meeting_topic会面 - 这将允许多个主题,具体取决于您的唯一性规范。此外,由于许多人可能会参加同样的会议,例如meeting_attendee,其中至少有两行用于学生,一行用于顾问。像这样的东西:
meeting
----------
meeting_id
meeting_date
location_id (?)
topic
----------
topic_id
description
meeting_topic
-----------
meeting_id
topic_id
meeting_attendee
-----------
meeting_id
attendee_id
答案 3 :(得分:0)
我的桌子设计:
Student (id, name)
Advisor(id, name)
Topic(id, name, created_by(foreign key id of student), advisor(foreign key id of advisor))
Meeting(id, name, schedule, topic (foreign key id of topic))
这是考虑到一个学生和一个顾问在会议中最简单的数据库设计。
答案 4 :(得分:0)
根据给出的信息,在我看来,引用会议到该主题很好地工作。但是,这是否最简单取决于您期望的查询(包括其相对频率)。