AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[version-control](dba)

Martin Hope
skoczo
Asked: 2016-04-27 06:21:43 +0800 CST

使用草稿选项对数据库中的实体进行版本控制,选择查询

  • 2

我有 postgresql 数据库,我在其中保存 jee 应用程序的数据。用户可以编辑这些数据而无需创建新版本的实体(草稿)。在编辑期间,实体被复制为草稿(版本设置为 -1),编辑后用户可以将所有更改保存为新版本。我的问题是创建适当的 sql 查询以按版本获取数据,而不是提取所有数据并在应用程序中执行。

表架构:

id(uniq), field_id,version,otherFields....

id 是唯一值并自动递增。当用户开始编辑时,将使用 field_id=parent.id 创建新字段。所以我可以使用group by field_id提取所有版本的字段

情况1

我想获取当前版本,这意味着版本字段或版本的最大值设置为 -1。

案例二

我想获得特定版本。这并不容易,因为如果字段未被编辑(以节省空间),数据库中的数据不会更改。例如,字段a是使用版本 1创建的,然后对其他字段进行了更改。当前的全局版本是 7,但是字段a在数据库中仍然有一个版本为 1 的条目(该字段未被编辑)。因此,要提取不同于当前版本的特定版本,我需要获取MAX(version) where version<=:selected_version

示例数据:

id(uniq),field_id,version
1,1,1
3,1,7
55,1,-1
53,53,14

field_id=1 的实体有 2 个版本和草稿(用户正在编辑它)。

field_id=53 的实体只有一个版本,没有草稿。

我希望我对问题的解释是可以理解的。你能帮我做那些sql查询吗?它可以是两个查询,一个用于带有草稿的实际版本,另一个用于旧版本。

情况2可能的解决方案

我认为我可以使用此类查询提取特定版本

select field_id, max(version) ver from field_mappings where version<4 and version!='-1' group by field_id

我不知道为什么我不能提取 id。当我将查询更改为

select *, max(version) from field_mappings where version<4 and version!='-1' group by field_id

然后我得到了错误

ERROR: column "field_mappings.id" must appear in the GROUP BY clause or be used in an aggregate function
SQL: 42803

并且仍然不知道如何为草稿添加大小写(最大(版本)或版本=-1)。

postgresql version-control
  • 1 个回答
  • 589 Views
Martin Hope
Helmuth Fernandes
Asked: 2015-04-25 03:57:07 +0800 CST

我怎么知道我的数据库版本?

  • 3

我需要知道我的数据库版本是什么。

我在 linux 64 位上使用 DB2 V9.7。我已连接到数据库,我需要知道它是 32 位还是 64 位。

有人能帮我吗?

db2 version-control
  • 2 个回答
  • 18817 Views
Martin Hope
MacGyver
Asked: 2013-05-23 14:01:07 +0800 CST

使用多个环境管理 Erwin 文件更改的版本控制

  • 1

在单个 Erwin 文件或多个 Erwin 文件中管理三个环境(DEV、QA 和 PROD)的最简单方法是什么?Erwin 文件按主题区域分隔,因此我不确定逆向工程是否可行。我们每天都执行迁移,但它们并不总是符合 Erwin 中的内容,因此我们很难向最终用户展示 QA 中的内容和 PROD 中的内容。

version-control erwin
  • 2 个回答
  • 2461 Views
Martin Hope
user548084
Asked: 2012-10-08 15:44:30 +0800 CST

mysql中用户级数据版本控制的最佳结构

  • 1

我有一个正在构建的应用程序,允许用户上传数据文件,我将数据文件的内容读入数据库。所有数据文件都具有相同的字段,但数据元素之间可能存在细微差异,具体取决于原始来源和/或用户(值的差异,而不是数据类型的差异)。

为了尊重这一点,我需要每个用户都在数据库中拥有一份个人数据副本,这样任何用户都无法读取其他用户上传的数据。这些文件被翻译成许多具有外键关系的表,等等......,所以它不是微不足道的。

我想到了以下解决方案:

  • 一个单一的表结构,user_id每个表中都有一个列来保存特定于用户的数据——当前的解决方案,但我担心维护起来可能是一场噩梦。

  • 每个用户的表结构的不同副本(因此用户 1 和 2 的 datatable_1 和 datatable_2)- 维护和分段更简单,但可能有很多表,我需要为每个表结构创建单独的视图......只是很多对象。此外,当一个用户正在上传而另一个用户正在阅读时,表级锁定可以防止出现访问问题。

  • 每个用户一个不同的数据库(db_1.datatable,db_2.datatable)——更好的结构和分割,每个数据库更少的表,但是大多数支持 web 的应用程序的定价是每个数据库,所以这可能是一个非启动器。 .

任何想法或其他建议将不胜感激......

mysql version-control
  • 1 个回答
  • 934 Views
Martin Hope
leeand00
Asked: 2011-04-08 04:18:48 +0800 CST

在版本控制中存储 DBUnit 文件与使用 Liquibase 进行数据库版本控制之间的区别?

  • 4

在版本控制中存储DBUnit数据库可加载的 xml 文件与使用Liquibase进行数据库版本控制有什么区别?

我对 DBUnit 比较熟悉,在Matt Raible 的Appfuse项目中使用过它,并且在基于Appfuse的项目中使用过它进行单元测试。我以前从未想过它,但在我看来它也可以用于数据库版本控制。

现在Liquibase似乎用于数据库的版本控制,但是当您可以使用 DBUnit 提取数据库更改并使用它获取数据时,我看不出如何需要另一个工具(将该文件存储在版本控制中以方便您的 db vcs 需求。)

这两种工具都存在一定是有原因的,但我不明白它们之间的范围有什么区别,有人可以向我解释一下吗?

version-control
  • 2 个回答
  • 1239 Views
Martin Hope
Toby
Asked: 2011-01-04 12:46:32 +0800 CST

组如何跟踪数据库架构更改?

  • 68

哪些版本控制方法可以帮助团队跟踪数据库架构更改?

mysql version-control
  • 5 个回答
  • 11653 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve