如何表示数据库中的继承?
P粉041856955
P粉041856955 2023-08-29 13:56:14
[PHP讨论组]

我正在考虑如何在 SQL Server 数据库中表示复杂的结构。

考虑一个需要存储一系列对象的详细信息的应用程序,这些对象共享一些属性,但有许多其他不常见的属性。例如,商业保险套餐可能在同一保单记录中包括责任险、机动险、财产险和赔偿险。

在 C# 等中实现这一点很简单,因为您可以创建包含部分集合的策略,其中部分根据各种类型的覆盖的需要继承。然而,关系数据库似乎不允许这样做。

我可以看到有两个主要选择:

  1. 创建一个策略表,然后创建一个部分表,其中包含所有可能的变体所需的所有字段,其中大部分为空。

  2. 创建一个策略表和多个部分表,每个表对应一种保险。

这两种替代方案似乎都不能令人满意,特别是因为需要跨所有部分编写查询,这将涉及大量联接或大量空检查。

此场景的最佳实践是什么?

P粉041856955
P粉041856955

全部回复(1)
P粉476475551

第三个选项是创建一个“Policy”表,然后创建一个“SectionsMain”表,用于存储跨不同类型的部分所共有的所有字段。然后为每种类型的部分创建其他表,仅包含不常见的字段。

决定哪个最好主要取决于您有多少字段以及您想要如何编写 SQL。他们都会工作。如果你只有几个字段,那么我可能会选择#1。对于“很多”领域,我倾向于#2 或#3。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号