我在一个应用程序上工作,我将显示事件(体育赛事,音乐会等)。我正在试着想出一个模型,在这个模型中,我可以挑选出参加体育赛事的团队,以及在音乐会上演奏的乐队/艺术家。
我最初尝试的是有一个事件表,团队表,乐队/艺术家表。但我想不出最好的方式来处理两个团队或许多乐队/艺术家在一个活动中表演。
如果多个字段不适用于记录,是否可以有多个字段为空?我一直认为限制记录中空字段的数量是最好的。
发布于 2010-01-05 13:48:02
有很多方法可以解决这个问题。
您肯定会有一个events表。
您是否将运动队和乐队划分为单独的表,这将取决于您维护的关于每个表的信息以及您对NULLS的感觉。我的理解是,在记录中设置空值实际上不会影响性能(我敢肯定不同的数据库会有所不同) --如果有许多与体育和音乐相关的字段混合在一起,那么真正的缺点可能是一个笨重的表。
如果您确实创建了单独的体育表和演唱会表,则需要考虑如何处理问题中的"etc,etc“。魔术师和吞剑者会去哪张桌子?
至于将多个团队/行为与一个事件连接起来,我倾向于创建一个中间表来执行这种连接。每个记录将引用事件id和表演者id。对于一个事件(一个表演者),您可以有一个记录;对于一个体育事件(两个团队),您可以有两个记录;对于一个多幕音乐会,可以有n个记录。
然后,为了显示账单,您将查找您的事件,然后使用中间表查找该事件中出现的所有动作,并使用这些ids来获取每个动作的名称和详细信息。
https://stackoverflow.com/questions/2004346
复制相似问题