Database design 第三方数据-存储在数据仓库或主数据库中?

Database design 第三方数据-存储在数据仓库或主数据库中?,database-design,data-warehouse,Database Design,Data Warehouse,这主要是一个数据仓库哲学问题 我的项目涉及一个Oracle表单应用程序和一个用于报告和特殊目的的Teradata数据仓库。除了应用程序用户创建的主要数据外,我们还需要来自各种其他来源的数据。目前,这些第三方数据通过FTPd平面文件直接进入我们的数据仓库。要访问数据,我们的用户必须使用一系列自定义BusinessObjects报告 我的问题是,将这些数据发送到源Oracle系统是否更有意义?数据仓库作为用户访问原始数据的起点是否合适 简而言之,更重要的是操作数据库只包含项目创建的数据,还是数据仓库

这主要是一个数据仓库哲学问题

我的项目涉及一个Oracle表单应用程序和一个用于报告和特殊目的的Teradata数据仓库。除了应用程序用户创建的主要数据外,我们还需要来自各种其他来源的数据。目前,这些第三方数据通过FTPd平面文件直接进入我们的数据仓库。要访问数据,我们的用户必须使用一系列自定义BusinessObjects报告

我的问题是,将这些数据发送到源Oracle系统是否更有意义?数据仓库作为用户访问原始数据的起点是否合适


简而言之,更重要的是操作数据库只包含项目创建的数据,还是数据仓库只用于报告和分析?

我们会根据具体情况进行选择

如果常规用户和日常应用程序需要查看第三方数据,我们会将数据放在他们可以使用的地方。在我们的例子中,这些数据通常是存储在数据库中自定义表中的数据,这些表是可选的,而不是可编辑的,以防止用户更改第三方数据。如果使用常规表,则可能需要触发器来防止意外更改此数据。此外,它通常以一种不容易适应您的数据结构的形式出现,如果他们只需要查看是否出于报告目的,您可能不想花时间来清理它,以便您的常规应用程序可以使用它。因此,在这种情况下,可能需要自定义表

例如,第三方可能有一个字段大于您的字段,用于相同的内容。您可以通过截断它们的数据以适合您的结构来删除其含义。此外,您的结构可能有一组第三方数据没有的约束,您是否希望通过删除这些约束来冒数据完整性的风险?可能不会。如果我的应用程序认为某个字段是必需的或是有效的日期,那么我不想更改为存储第三方报告数据。如果数据可以而且应该提供给用户进行更改(我们做了很多),那么继续按照您的数据库标准清理并插入数据


通常,执行常规数据输入的用户不需要查看第三方数据,而只需要在从数据仓库提取的管理报告中查看。在这种情况下,我不会尝试将数据放在数据仓库之外的任何地方。为什么要让生活变得复杂,让意外的改变变得容易呢?

谢谢你的洞察力。该项目是一个儿童抚养系统,我们需要从其他政府机构获取数据,用于定位和收入预扣。例如,不合规的父母可能会给你一个假地址,但当他们获得狩猎许可证时,会给DNR一个真实的地址。因此,案例工作者将受益于在主应用程序中提供数据,而不是从仓库中获取单独的DNR报告。从我提供的信息量来看,你会同意吗?是的,但我会把它放在不同的表格中,用户不会;他没有写信的权利。然后在应用程序中,案例工作者可以看到他们拥有的地址,以及其他可能的地址和地址的来源,但只能更改他们的系统地址。事实上,我会在其他来源的地址上设置一个按钮,如果他们发现其他地址中的一个是正确的,那么他们可以将数据复制到自己的地址。祝你的案例工作者好运,找到那些不支付子女抚养费的scrum。