对数据库持久对象进行版本控制,您会如何? [关闭]

2024-03-16

(与数据库架构的版本控制无关)

与数据库交互的应用程序通常具有由许多表中的数据组成的域对象。假设应用程序要支持这些域对象的 CVS 意义上的版本控制。

对于某些任意域对象,您将如何设计数据库模式来处理此需求?有什么经验可以分享吗?


仔细考虑修改的要求。一旦您的代码库在操作系统中内置了普遍的历史记录跟踪,它将变得非常复杂。保险 http://www.xchanging.com/Sectors/Software.htm 承保 http://www.roomsolutions.net/insurance-software/policy-administrator-system/subscribe.aspx systems http://www.intechsolutions.co.uk/London_Market.htm对此尤其不利,模式通常运行超过 1000 个表。查询也往往非常复杂,这可能会导致性能问题。

如果历史状态确实只需要用于报告,请考虑实施一个“当前状态”事务系统,并在后面悬挂一个数据仓库结构来跟踪历史记录。缓慢变化的维度 http://en.wikipedia.org/wiki/Slowly_changing_dimension与尝试将临时历史跟踪机制直接嵌入到操作系统中相比,跟踪历史状态的结构要简单得多。

Also, 更改数据捕获 http://en.wikipedia.org/wiki/Changed_data_capture对于“当前状态”系统来说更简单,对记录进行更改 - 记录的主键不会更改,因此您不必匹配将同一实体的不同版本保存在一起的记录。有效的 CDC 机制将使增量仓库加载流程变得相当轻量,并且可以非常频繁地运行。如果您不需要历史状态的最新跟踪(几乎,但不完全是,矛盾的),这可能是一个有效的解决方案,其代码库比直接构建到应用程序中的完整历史跟踪机制简单得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对数据库持久对象进行版本控制,您会如何? [关闭] 的相关文章

  • 如何正确设计数据库的这一部分(循环引用?)

    情况 一个公司有很多项目一个项目有很多标签一个项目只属于1家公司一个标签可以属于多个项目公司必须有权访问自己的标签 示例1 在第一张图片中 公司的所有标签都可以通过projects project tag 获得 但如果所有项目都被删除 那么
  • 数据库中的 HTML 标签是不好的做法还是好的做法?

    有时我需要格式化来自数据库的特定数据或部分数据 例如 如果我有这样的 desc 存储在数据库中 HTML 4 经过调整 延伸和增强 超出了其最初的范围 为网站带来了高水平的交互性和多媒体 Flash Silverlight 和 Java 等
  • 如何按关系的数量或成员对 Doctrine DQL 查询进行排序?

    我正在尝试创建一个查询 用于从 Doctrine 数据库中检索对象 并按特定一对多关系的成员数量排序 更具体地说 我有两个实体 Person 和 Federation 一个人可以是一个联盟的成员 人具有 联盟 关系 并且一个联盟可以有n人
  • 从 Presto 中的 JSON 列获取特定值

    我有一个带有 JSON 列的表points其中一行为 0 0 2 1 1 2 2 0 5 15 1 2 20 0 7 我想获取键的值 1 and 20 并将它们存储为别名 例如first and second在查询中 到目前为止我所做的是
  • 将自动递增值添加到只有一列的表中

    我需要创建一个基本上仅保留索引列表的表 因此 我创建了一个只有一个名为 id 的自动递增列的表 但是 我似乎无法隐式地将自动递增值添加到该表中 我知道通常当您在表中有这样一列 不仅仅是此列 时 您可以执行以下操作 插入表 col1 col2
  • 我们可以使用sql列出MS Access数据库中的所有表吗?

    我们可以使用 sql 找到 ms access 中的所有表吗 就像我们在 sql server 中所做的那样 select from sys tables 在sqlite中 SELECT FROM sqlite master where t
  • 无法启动 MongoDB:Windows 中的系统错误 1067

    在 Windows Server 2008 R2 上设置 MongoDB 服务后 出现此错误 C mongodb bin gt net start MongoDB The Mongo DB service is starting The M
  • 数据库分区 - 水平与垂直 - 规范化和行拆分之间的区别?

    我试图理解不同的概念数据库分区这就是我的理解 水平分区 分片 将表拆分为不同的表 其中将包含初始表中的行的子集 如果按大陆拆分用户表 我见过很多这样的示例 例如北美的子表 欧洲的另一个子表 ETC 每个分区位于不同的物理位置 理解 机器 据
  • 考虑到我的图像链接存储在MySQL数据库中,如何通过php显示存储在文件夹中的图像

    作为良好的做法 我只将图像链接存储在数据库中 问题是 我应该如何存储图像的链接 假设它在 c 上 c image jpg 我应该使用哪段 PHP 代码来显示该图像 我只显示路径 我该怎么做才能显示图像 我可以用这个吗 query SELEC
  • 使用实体框架、代码优先方法解决结构问题

    我目前正在使用 EF 和代码优先方法从现有系统构建数据库 最好对 核心 类进行最小的更改 因此 我想找到 Structs 和 EF 的解决方法 是否可以以任何方式将 Struct 包装到类中 以便 EF 可以使用此 Struct 中的数据
  • SQLite:从命令行仅将模式转储到 .sql 文件中

    我正在尝试转储架构test db仅 即没有数据 到名为的文件中schema sql从 OS X 中的命令行 无需启动 sqlite3 我知道我能做到 sqlite3 open test db output schema sql schema
  • 使用 unnest() 返回行?

    我尝试在完成后返回一组行UPDATE 像这样的东西 UPDATE Notis new noti SET notis noti record type FROM SELECT FROM Notis WHERE user id 2 FOR UP
  • 为什么Aries在数据库管理恢复中要先执行redo before undo?

    如果 Aries 算法已经知道在分析阶段之后要撤消哪些事务 为什么它会在撤消之前应用重做 我知道 认为 这与 Lsn 数字和维护一致性有关 因为在磁盘上刷新的数据撤消事务可能与崩溃时撤消事务不同 由于脏数据 页 但我找不到这个问题的任何 正
  • 不使用 Django 的 Python 数据库(适用于 Heroku)

    令我惊讶的是 我没有发现其他地方提出过这个问题 简而言之 我正在编写一个应用程序 计划部署到云 可能使用 Heroku 它将执行各种网络抓取和数据收集 它将位于云中的原因是 我可以将其设置为每天自行运行 并将数据提取到数据库 而无需我的计算
  • 列太多的表的缺点

    我有一些数据需要放入 PostgreSQL 数据库中 这些数据与学校有关 所以有很多与学校相关的属性 大部分是小整数 浮点数或小文本 所有数据每年都会发生变化 所以我正在创建一个名为的实体YearlyData并将属性放在那里 但问题是 属性
  • 在 Python 中打开 Alteryx .yxdb 文件?

    有没有办法将 yxdb Alteryx 数据库文件 导入到 Pandas Python 中 而不使用 Alteryx 作为中间人 简短的回答是否定的 目前还不行 更长的答案 yxdb 支持的原始 C 是可以在 github 上找到 http
  • 将数据库表转换为 XML 模式文件

    我正在使用 SQL Server 2005 是否有任何命令或 GUI 工具 例如 SQL Server Management Studio 中的任何菜单 功能 可以将数据库表转换为 XML 架构文件 xsd 提前致谢 乔治 我找到了这个 试
  • 实时数据和草稿数据的数据库模型

    我一直在考虑在数据库中保存 实时 数据集和草稿数据集的最佳方法 实际版本会显示在网站上 草稿版本会一直进行下去 直到准备好上线为止 该模型是关系模型 由许多表组成 我目前的方法是拥有 2 个数据库 一个用于草稿 一个用于实时 当您将数据提升
  • 是否可以在MySQL UDF中的IF条件中声明游标

    我可以在 if 语句中声明游标吗 如果可能的话我怎样才能做到 因为我刚刚做了这样的光标 CREATE FUNCTION fn test ProductID BIGINT 20 RETURNS DECIMAL 10 2 BEGIN DECLA
  • 通过网络恢复数据库备份

    如何通过网络使用 SQL Server 2005 恢复数据库备份 我记得以前这样做过 但这样做的方式有些奇怪 您几乎没有选择使用网络文件作为备份源 在与 MS SQL Server 相同的用户下映射网络驱动器 路径 托管文件 使用 xp c

随机推荐

  • 如何使用 python urllib 忽略 Windows 代理设置?

    我希望 Python 在使用时忽略 Windows 代理设置urllib 我设法做到这一点的唯一方法是禁用 Internet Explorer 上的所有代理设置 有什么程序化的方式吗 os environ no proxy 不是一个好的选择
  • Symfony 3 根据远程 API 对用户进行身份验证

    我有一个应用程序 其中后端和前端由不同的主机提供服务 并且是两个不同的应用程序 均基于 Symfony 3 其中之一 后端ofc 处理业务逻辑并将用户及其角色保存在其数据库中 后端提供REST API供前端使用 我无法修改后端代码 因为它不
  • 如何选择所有列以及 Oracle 11g 中 CASE 语句的结果?

    我想选择 而不必键入所有单独的列 但我还想包含带有 case 语句的自定义列 我尝试了以下方法 select case when PRI VAL 1 then High when PRI VAL 2 then Med when PRI VA
  • Java MyBatis 存储过程调用带 OUT 参数

    第一个问题 我试图返回一个 OUT 参数 而不是带注释的结果集 首先 这可能吗 如果是的话 人们会怎样做呢 MyBatis 3 0 6 数据库 SQL Server 2008 以下是我在 UserDAO 中调用方法的语法示例 Select
  • Control.ResolveUrl 与 Control.ResolveClientUrl 与 VirtualPathUtility.ToAbsolute

    在解析以波形符 开头的路径时 使用其中一种方法比使用另一种方法有什么好处吗 一般来说 更好的做法是什么 您应该在 html 中发送相对路径还是绝对路径 ResolveUrl 和 ResolveClientUrl 的区别在于 ResolveC
  • MongoDB 记录太多?

    我有一个与 MongoDB 交互的 PHP 应用程序 直到最近 该应用程序运行良好 但几天前我发现该应用程序开始响应非常慢 其中一个收藏已突破 500K 条记录 因此 对该集合的任何查询的 MongCursor 都会超时 我认为 500K
  • 如何通过 ajax 操作向表添加行link

    我是 MVC4 的新手 我遇到了一个问题 当我想在 ajax 中向表中添加一行时 它似乎不是我想要的 这是我的代码 table thead tr th T n h c sinh th th Gi o l vi n th th N m H c
  • 避免序列化 REST 服务中的某些属性

    我有一个 Net应用程序分为客户端和服务器端 服务器提供REST服务 使用WCF 我有这样的服务定义 WebGet UriTemplate Customers id Customer GetCustomerById string id We
  • 对类型为其他模型的属性进行环回验证

    我定义了两个模型 位置和地址 定义如下 address properties address1 type string required true public true dataSource db plural addresses loc
  • Flask 蓝图在蓝图中查找静态文件而不是根目录

    我的蓝图应该在根目录中查找静态文件 但事实并非如此 假设我有一个名为 前端 的蓝图 frontend 仅传入了 template folder frontend 即使我将静态文件放在 app frontend static file css
  • 如何:Parallel.Foreach 执行许多进程,每个进程运行一个新进程(但一次一个)? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我确信有人知道这一点 我将非常感谢您
  • 休眠中的未知实体

    执行主类时出现此错误 我正在尝试在表投资组合中插入新记录 正如您所看到的 我使用 Hibernate ORM 模型来做到这一点 另外 可以说 hibernate 与数据库的连接没有任何问题 Exception in thread main
  • 同一模型上雄辩的亲子关系

    我有一个模型CourseModule 并且每个项目都与同一模型相关 数据库结构 模型中的关系 public function parent return this gt belongsTo App CourseModule parent i
  • Java接口命名约定[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用线程进行 Android 媒体录制

    我正在开发一个 Android 应用程序 只需使用按钮即可开始和停止录制 我用了线程 我创建了三个类 一个开始录制 一个停止录制和主类 问题是我可以在手机中看到该文件 但它是空的 并且手机给我一条消息 无法播放视频 我希望它与线程一起使用
  • 仅当用户在计算机上时才显示通知

    检测用户当前是否在其计算机上 即以某种方式使用它 的最佳方法是什么 我们有一个应用程序 仅当用户在计算机前时才发出通知 带有关闭按钮的横幅通知 例如 想象一个股票交易应用程序 它提醒用户各种可能只与几分钟相关的时间敏感信息 如果用户离开计算
  • pygtk glib.timeout_add():如何判断计时器是否没有被销毁?

    在我的应用程序中 我使用一个函数来显示带有超时的 GtkInfoBars 如所述https stackoverflow com a 1309257 406281 https stackoverflow com a 1309257 40628
  • CSS:图像链接,悬停时更改

    我有一个图像 它是一个链接 我想当用户将鼠标悬停在链接上时显示不同的图像 目前我正在使用这段代码 a href http twitter com me title Twitter link div class sidebar poster
  • 通过EntityFramework获取表的最新Value

    我有一个包含多个字段的表 每个字段都通过单独的 ViewModel 单独更新 现在我想获取特定字段的最新值 也许它已在我表的第五条记录中更新 好吗 现在我写的看起来像这样 public ViewResult ShowPiece var co
  • 对数据库持久对象进行版本控制,您会如何? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 与数据库架构的版本控制无关 与数据库交互的应用程序通常具有由许多表中的数据组成的域对象 假设应用程序要支持这些域对象的 CVS 意义上的版本