SQL中的多态关联

时间:2018-11-26 17:35:06

标签: sql polymorphism mariadb associations

我正在创建一个包含电影和系列大数据库的项目,它们都在单独的表格中。现在,我还有其他表格,例如国家/地区,用于指定电影或/和意甲的制作国家/地区。如果要在多对多关系中执行此操作,则需要连接表一个用于电影,一个连接表用于意甲。它看起来像这样: DB with separate connection tables

有很多表,所以我在寻找其他解决方案时,发现了article,并且“对每个类使用一个数据实体”方法似乎对我来说是最好的。我是这样实现的:DB with combined connection table

第二种实现似乎很好,但是我面临一个问题,那就是复杂的插入。要插入新的电影,我首先需要添加新的作品,其次要插入电影并选择刚刚创建的作品ID。

我的问题是可以某种方式解决吗?不能从电影表中自动递增吗?

我使用的是10.1.36-MariaDB,对于我的英语不好,我深感抱歉:

1 个答案:

答案 0 :(得分:0)

由于“电影”和“系列”只有一个不同的列(“票房”),因此将两个表放在一起并将“票房”作为系列的NULL是有意义的。我不了解对Production的需求,但这似乎增加了所节省的复杂性。尝试摆脱它。

我建议Country的ID为标准的2个字母的代码。这样会更紧凑并消除一些东西。

没有足够的理由为连接表使用id。参见many-to-many tips。这些提示将加速您的许多查询,并节省空间。

“多态”和教科书中的许多其他内容在关系数据库中不一定能很好地工作。