问题标签 [data-integrity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 通过 SSH 从多个远程主机收集 STDOUT 时的数据完整性问题
假设您运行以下命令:
然后输出将如下所示:
但是如果我把它改成
以便每个主机的标准输出不适合单个缓冲区?在这种情况下是否会维护 file[1-3].txt 的数据完整性,而不是顺序?是否有可能其他文件的文件片段像这样在其他文件的中间滑动?
python - 如何在不使用键名的情况下确保谷歌应用引擎中对象的数据完整性?
在使用没有键名的祖先关系时,我在确保我的数据正确的 Google App Engine 中遇到了一些麻烦。
让我再解释一下:我有一个父实体category,我想创建一个子实体item。我想创建一个接受类别名称和项目名称的函数,如果它们不存在,则创建这两个实体。最初,我创建了一个事务,并在需要时使用键名在事务中创建了两个事务,这很好用。但是,我意识到我不想使用名称作为键,因为它可能需要更改,我尝试在我的事务中执行此操作:
当我尝试运行它时,我发现 App Engine 拒绝了它,因为它不允许您在事务中运行查询:Only ancestor queries are allowed inside transactions
.
看看谷歌给出的关于如何解决这个问题的例子:
我试图将获取的类别移到交易之前:
这似乎可行,但我发现当我使用一些创建了重复类别的请求运行它时,这是有道理的,因为该类别是在事务之外查询的,并且多个请求可以创建多个类别。
有谁知道如何正确创建这些类别?我试图将类别创建放入事务中,但仅再次收到有关祖先查询的错误。
谢谢!
西蒙
php - 修复数据完整性
我认为这是一个长镜头,但它是这样的:
基本问题是:开发团队如何开始修复大型受损数据集的数据完整性?
我正在帮助的公司拥有一个庞大的 MySQL/PHP5 系统,其中包含几年的杂乱、无效数据、损坏的引用等。最重要的是,这些数据引用了一些在线服务的数据,例如 Google AdWords。
所以本地数据库有问题,本地和远程(例如AdWords)之间的关系也有问题,使问题更加复杂。
有没有人可以分享他们开始修复数据完整性的提示、技巧或最佳实践?并在一个快速、持续地添加和更新的系统中保持数据完整性?
database - 数据库约束 - 保留还是忽略?
我在大学学习的时候,他们教我们数据库基础,基础和规则,其中最重要的规则之一是约束(主键,外键),以及如何建立1-m,1-1,mn关系.
现在,当我转向真实的商业环境时,他们告诉我:你应该忘记你所学的一切;没有约束,所有这些关系都是逻辑的,没有主键,没有外键,你可以通过代码来做你的约束。
我不知道谁是对的:我在学术生活中学到了什么,或者我将在新的真实商业生活中学到什么。你怎么看?
sql - SQL 触发器无法正常工作
这是我拥有的 2 个表,我想实现一个触发器,即客户不能从一家银行拥有超过 5 个帐户,但总共可以拥有超过 5 个。
这是我写的触发器,但我总共不能创建超过 5 个账户,因为它检查所有银行的所有账户,而不是单个银行。
我猜这个问题在 GROUPBY 函数内。
sql - 如何形成这个 SQL 约束,它是否反向工作?
假设我有“表 A”:
...和 n 个具有这种格式的表:
...其中 A_FK 是对“表 A”ID 的外键引用。
所以有一个“表A”和n个“表B”。对于这些“B”表,其中一些可以具有 A_FK 的任何现有值(不需要约束)。其他“B”表只能引用 A_FK 值,其中对应的记录在 Col A 中没有 Null 值。
所以我的问题是:
- 我将如何编写一个约束来解决这个问题(我想这是一个非常简单的约束,我只是从来没有写过一个而且我感觉有点懒惰)?
- 约束是否反向起作用?假设我在“B”表中输入了一条记录,它链接到表 A 的 Id = 1(表 B 有约束)。这很好,因为表 A 的 1 = "Z" 的列 A。如果我稍后尝试将“Z”更改为 Null,会出现错误吗?
提前致谢。
java - 这段代码还能如何针对防御性编程进行优化?
对于我的数据结构项目,目标是读取包含超过 10000 首歌曲的提供的文件,其中清楚地标记了艺术家、标题和歌词,并且每首歌曲都用单双引号分隔。我编写了这段代码来解析文本文件,它可以运行,运行时间不到 3 秒,可以
读取 422K 行文本
创建一个 Song 对象
,将所述 Song 添加到 ArrayList
我写的解析代码是:
我正在和我的 Intro to Algorithms 教授讨论这个项目的代码,他说我应该尽量在我的代码中更加防御,以允许其他人提供的数据不一致。最初我在 Artist、Title 和 Lyrics 字段之间使用 if/else 块,根据他的建议,我改为使用顺序 if 语句。虽然我可以理解他的观点,但使用此代码示例,我怎样才能更加防御允许输入不一致?
mysql - MySQL事务:多个并发事务和数据完整性
我在一个相当复杂的 Web 应用程序中使用事务来管理多个 MySQL InnoDB 表中的数据。简而言之,给定事务的工作方式如下:
- 从“user_point_totals”表中的一行读取数据
- 各种阴谋计算用户的新点总数应该是多少
- 在“user_point_totals”表中创建一个新条目,反映更新后的总数
假设用户 A 执行了一些与积分相关的操作,执行第 1 步,执行线程将用户的总积分读入内存,应用程序开始计算新的总积分。同时,用户 B 执行了一个对用户 A 的总积分有影响的动作,另一笔交易开始;但是,第一个事务还没有完成,所以第二个线程获得与第一个事务相同的点总值作为起点(来自同一表行)。随后,事务 1 完成并创建一个新的用户积分总数,它对新值应该是什么的感知,不久之后,事务 2 完成并为用户的积分总数创建一个新行。但是,第二笔交易的总积分现在不正确,
我的问题是:
- 由于交易的原子性质,这种情况是不可能的,我显然不明白我应该理解的程度吗?
- 如果不是,如何确保在这些情况下存在数据完整性?
感谢您的考虑!
sql-server - 不可信约束
令我惊讶的是,我刚刚了解到外键约束可能是不可信的。当使用添加约束时会发生这种情况WITH NOCHECK
。当约束不受信任时,查询分析器不会使用它来生成查询计划。
请参阅:
https ://sqlserverfast.com/blog/hugo/2007/03/can-you-trust-your-constraints/
我的问题是这个。当约束不受信任时,我可以检查约束上的属性来告诉我这一点吗?我想我可以检查是否使用 WITH NOCHECK 添加了约束,但是还有其他方法可以将约束标记为不受信任吗?
sql-server - 执行此数据完整性约束的最佳方法是什么?
我有 3 张桌子(我们称它们为 Foo、Bar 和 Baz。
表:
富
- FooId
酒吧
- 条码
- FooId
巴兹
- 巴兹德
- 条码
- 另一个价值
显然,外键使得每个 Baz 都与 Bar 相关联,因此与 Foo 相关联。现在我想确保对于每组具有相同“AnotherValue”的 Baz,所有关联的 Foo 都是唯一的
例如,如果我有
这应该被阻止,因为 Baz 104 和 baz 101 都具有 AnotherValue "b" 和 Foo 1。
我想到的选项(按我当前的偏好排序)
索引视图
我可以在这三个表上创建一个视图,并在两列上放置一个唯一索引
计算列
将 FooId 作为计算列添加到 Baz。然后在 AnotherValue 和 FooId 上添加索引。
检查约束
我很确定这可以添加并且会起作用。我没有太多使用检查约束,我不确定这是否是最好的方法。
扳机
这对我来说似乎很丑陋。