我正在设计一个web应用程序,它允许用户参加活动并搜索特定类型的事件。比如说,这些事件发生在霍格沃茨。学生们有自己的桌子,把他们的studentID作为主要的钥匙,这也包括他们是哪个房子的一部分(其中有4个),他们的科目,以及他们在哪一年的学习(例如1或4或5,等等)。这些活动可以是为所有的学生,特别是四年级学生在拉文爪宫,或在两者之间的任何地方。
这些事件是在events表中举行的,其中包含一个eventID作为主键,但我不知道如何保存它所针对的房屋/年份/主题的数据。显然,如果一项活动只针对服用药剂的第三年赫弗莱普夫人,或者类似的特定事件,我可以把它放在同一张桌子上。然而,如果这个事件发生在赫芬顿的任何一年(而不是任何斯莱特林,等等)呢?或者,如果所有的学生从所有年份,房屋和科目是有资格参加?我是否需要一张能容纳每一项活动多年的桌子,一张独立的桌子,一张用来存放它的房子,另一张桌子,用于它所针对的主题?
如有任何建议或链接将不胜感激。
发布于 2015-02-26 15:27:34
我认为有两种方法,但您肯定需要至少多一张表格来进行关联。要么你想要非常具体,关于可能的组合,或者你想做一般的事情,比如:只有第三年,只有赫弗莱普夫,那么这两个值的组合将仅仅是第三年。
我想说的是这两种选择。
1)一个包含非常详细信息的行的表:事件ID和所有可能选项的显式组合(在这里您将有很多行)
这将意味着,这一事件可以与第二年和第三年的赫弗莱帕夫斯,但只有第二年斯莱特林。
association_id event_id year_id house_id subject_id
1 1 second hufflepuff potions
2 1 third hufflepuff potions
3 1 second slytherin potions2)每个属性只有一个表(在这里,disctinction不是很清楚,但是您只需创建每个属性一行,等等)。
以下两个表可以用来存储所有在第二年或第三年的hufflepuffs和所有slytherins可能参加的
association_id event_id year_id
1 1 second
2 1 third
association_id event_id house_id
1 1 hufflepuff
2 1 slytherin这能回答你的问题吗?或者至少能帮你找到一个解决办法?
如果你能更紧密地描述你所瞄准的目标,你就能找到一个适合你的问题的解决方案。
https://stackoverflow.com/questions/28742222
复制相似问题