我正在尝试创建一个数据库,其中很大一部分数据是时间性的.在阅读了许多这样做的技术(大多数涉及6nf标准化)后,我跑到了
Anchor Modeling.
@H_502_2@我正在开发的模式非常类似于Anchor Modeling模型,特别是因为用例(时态数据已知未知数)非常相似,所以我很乐意完全拥抱它.
@H_502_2@我遇到的两个最大的问题是,我没有找到任何详细的这种方法的负面情况,我找不到任何参考组织使用它在生产中的战争故事和陷阱,我需要注意.
@H_502_2@我想知道这里的任何人是否熟悉,可以简要阐述一些负面因素(因为积极性在研究论文及其网站上广泛宣传),以及在生产环境中使用它的任何经验.
解决方法
参考
anchormodeling.com
@H_502_2@这里有几点我知道
@H_502_2@> DB对象的数量太大,无法手动维护,因此请确保始终使用设计器来演进模式.
>目前,设计人员完全支持MS sql Server,所以如果你必须始终端口代码,你可能要等到目标数据库完全支持.我知道它在下拉框中有Oracle,但…
>不要指望(也不要求)开发人员了解它,他们必须通过5NF视图访问模型 – 这是很好的.事情是通过视图上的(而不是 – )触发器加载表,这可能(或可能不)是性能问题.
>您可能需要编写一些额外的维护程序(对于每个时间属性)(不是自动生成的).例如,我经常需要一个时间属性的修剪过程 – 在两个连续的时间事件上删除同一个ID的同一个值记录.
>生成的视图和查询 – 视图可以很好地解决,所以可能会在将来写下任何内容.然而,“其他人”将会对视图进行查询,而不是总是很好地解决.所以期望您可能需要比平常更多的警察查询. @H_502_2@令人遗憾的是,我最近用这种方法重构了我仓库的一部分,它的工作就像一个魅力.诚然,仓库没有这里概述的大部分问题. @H_502_2@我建议,必须创建一个演示系统和测试,测试,测试…,特别是第3点 – 通过触发器加载.
>目前,设计人员完全支持MS sql Server,所以如果你必须始终端口代码,你可能要等到目标数据库完全支持.我知道它在下拉框中有Oracle,但…
>不要指望(也不要求)开发人员了解它,他们必须通过5NF视图访问模型 – 这是很好的.事情是通过视图上的(而不是 – )触发器加载表,这可能(或可能不)是性能问题.
>您可能需要编写一些额外的维护程序(对于每个时间属性)(不是自动生成的).例如,我经常需要一个时间属性的修剪过程 – 在两个连续的时间事件上删除同一个ID的同一个值记录.
>生成的视图和查询 – 视图可以很好地解决,所以可能会在将来写下任何内容.然而,“其他人”将会对视图进行查询,而不是总是很好地解决.所以期望您可能需要比平常更多的警察查询. @H_502_2@令人遗憾的是,我最近用这种方法重构了我仓库的一部分,它的工作就像一个魅力.诚然,仓库没有这里概述的大部分问题. @H_502_2@我建议,必须创建一个演示系统和测试,测试,测试…,特别是第3点 – 通过触发器加载.