我使用MySQL / InnoDB,并使用外键来保存跨表的关系。在下面的场景(下面描述)中,“管理器”与“记录标签”相关联,“艺术家”也与“记录标签”相关联。创建“专辑”时,它与“艺术家”和“经理”相关联,但艺术家和管理人员都需要与a recordLabel相关联。如何保证与当前表设置的关系,或者是否需要重新设计表?

发布于 2013-08-20 21:33:25
不能使用纯DRI声明引用完整性或外键链接来实现此结果,以确保架构的引用完整性。
解决这个问题的方法有两种:
作为一个侧面人物,我认为从实际的角度来看,这个结构相当奇怪--据我所知,Artist被签名到RecordLabel,并单独分配了一个Manager (无论是从标签还是单独的,许多艺术家在切换到另一个标签时都会保留自己的经理)。将Manager也链接到Album只对记录历史管理器有意义,使您能够在专辑发布时检索艺术家的经理,但这意味着如果艺术家稍后切换标签和/或管理,您的要求将自动失效。因此,我认为从实际数据的角度来看,加强这种联系是错误的。
发布于 2013-08-20 21:37:38
您要做的是将recordLabel id添加到相册表中。然后将两个列索引放在白蛋白(recordLabel_id,artist_id)和(recordLabel_id,managers_id)上。
因为record_id只能在白蛋白表的每一行中有一个值,所以您将确保完整性。
https://stackoverflow.com/questions/18345241
复制相似问题