我正在开发一个应用程序,我将展示活动(体育赛事,音乐会等等)。我正试图想出一个模型,我可以在那里挑选参加体育赛事的队伍,以及在音乐会上演奏的乐队/艺术家。
我最初的尝试是拥有一个事件表,团队表,乐队/艺术家表。但我无法弄清楚处理两个团队或许多乐队/艺术家在活动中表演的最佳方式。
如果它们不适用于记录,是否可以将多个字段设为NULL?我一直认为最好限制记录中的NULL字段数量。
答案 0 :(得分:1)
有很多方法可以解决这个问题。
你肯定会有一个活动表。
您是否将运动队和乐队分成不同的表格将取决于您对每个表格保留的信息以及您对NULLS的看法。我的理解是,你的记录中有空值几乎没有性能损失(我确定它因数据库而异) - 如果你有很多与体育和音乐相关的领域,真正的缺点可能是一个笨拙的表混合在一起。
如果你确实创建了单独的体育和音乐会表,你需要考虑如何处理你的问题中的“等等”。魔术师和剑吞者会去哪个桌子?
至于将多个团队/行为与事件联系起来,我倾向于创建一个中间表来执行该链接。每条记录都会引用一个事件ID和一个执行者ID。你可以有一个事件记录(一个表演者)或一个体育赛事的两个记录(两个团队)或一个多行动音乐会的n个记录。
然后,为了提取节目单,您将查找您的事件,然后使用中间表查找该事件中出现的所有行为,并使用这些ID获取每个行为的名称和详细信息。< / p>