使用多态多对多关系简化数据库,其中在同一模型中存在多个这样的关系。例如,用户模型可能与user_types,user_roles,user_statuses表具有多态关系。这些表中的每个表都可能具有相同的结构,但是在与数据透视表的常规多对多关系中,将需要七个表来合并类型,角色和状态。使用一个复杂的数据库(例如我正在使用的数据库),该问题迅速扩展为数百个表。由于许多人在理解此问题时遇到困难,因此我在下面提供了一个非常简单的粗略图表。在其中,您会看到右侧的所有四个模型都具有相同的结构。在我看来,这似乎完全没有必要,更不用说重复数据透视表了。
我是Laravel的新手,所以我可能错过了明显的地方。在我所能找到的关于Laravel多态的所有事物中,在任何给定模型中,许多相互关联的处理仅 的关系。给出的最常见示例是可标记的情况。在这种情况下,诸如“帖子”,“文章”和“评论”之类的模型可能与可标记模型具有一个且只有一个关系,尽管它们可能各自具有多个标记。我想我完全理解这一点,但这与我所说的情况不符。
我要说的是在开发阶段(alpha,beta,候选发布版本等),软件模型可能与Rubrics模型具有多对多关系。 和< / em> 用于软件类型(文本编辑器,消息传递,数据库管理等)。在这种情况下,除了 模型之外,Rubirics模型还必须捕获关系的“类型”(软件开发阶段与软件类型) 。
这似乎是一个足够普遍的问题,必须有某种方法可以实现。
我希望有人能够提供一种解决方案,简化与每个方面的表格的正常多对多关系-即使所有此类表格都可能具有相同的结构-以及数据透视/每个此类表的联结表。