问题标签 [database-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.

0 投票
1 回答
40 浏览

mysql - 最好将杂项元数据存储在数据库中或在每次访问时进行计算

我有许多我需要用于各种页面加载和其他后端任务的属性,我正在讨论是将这些东西存储在数据库中还是动态计算它们。

例如,如果有用户可以上传的文件,并且您想跟踪大小、占用的空间、格式等,最好将这些东西计算一次并将它们与文件在数据库中的位置一起存储,还是每次都抓取文件并手动获取文件属性?

另一个用例是购物车项目。是计算一个项目的价格并将其存储在购物车表的一行中,还是在每次加载页面时计算给定的价格更好。在这种情况下,一旦将商品添加到购物车,将不会反映基于站点范围内的销售、折扣、加价等的价格更改,除非在应用销售/折扣/加价时通过其他方法更新价格. 这不是最好的例子,但希望你能理解这个想法;也许你有一个更好的例子。

在这两个示例中,都可以使用源材料来获取问题的关键答案。显然,每个页面加载的开销很大,具体取决于具体情况,但是另一个似乎对数据库完整性的依赖较少,以确保它始终准确和最新(我我想我更喜欢)。我不是在这里寻找具体的答案,因为我确信这将取决于许多变量,但我正在寻找最佳实践或确定最佳解决方案的方法。

注意: 是一个类似的问题,但得到的回应很少,也没有答案。

0 投票
1 回答
923 浏览

django - python - 在批量python中创建资源时如何跳过现有对象实例

我正在尝试批量创建资源。在创建资源时,我必须matric_no是独一无二的。如果现有的值matric_no与一些新条目一起上传,我会收到完整性错误 500,因为该值已经存在并且它会阻止创建其余值。如何遍历这些值,然后检查该值是否存在,然后跳过以便可以填充其他值?这是我的代码:

这是更新的 serializer.py

这就是我现在移动它的方式 Seriliazers.py

当发送的列表有一个现有的 matric_no 时,它返回 500 ListSeriaizer is not iterable

0 投票
2 回答
1247 浏览

java - H2 数据库:插入新记录时无法解析“DATE”常量“31-JAN-20”

考虑以下 DDL,我在其中一个 JUnit 测试用例中使用它来创建 H2 数据库表:

我正在为其编写单元测试的类尝试在此表中插入一条记录。我可以看到执行以下查询以插入记录:

但是,插入失败,但出现以下异常:

我环顾四周,发现这个问题通常发生在您将时间组件作为日期的一部分时;但是,调试了代码,我可以看到 Java 代码正在传递“20 年 1 月 31 日”,没有时间戳组件,这也可以从上面的错误消息中看出。

如何解决此错误?

0 投票
3 回答
70 浏览

php - 如果发生错误,如何避免数据插入?(有几个插入的方法)在 Laravel

我正在构建一个 Web 应用程序,并且我知道可能存在问题。

我有一个控制器,其中有一个store方法。此方法在数据库中创建多个插入。

如您所见,我有很多插入。

如果发生错误(或者如果用户在某个时候失去了连接),它将破坏我的数据库的完整性,因为我的方法将添加第一个元素而不是其他元素。

我这样想是对的吗?如何避免这种情况?

0 投票
2 回答
233 浏览

django - 在 django 中使用 UUID 时如何防止 IntegrityError

我想在我的 django 模型中使用 UUID 作为 PK 如下(数据库是 Postgresql):

每次都会uuid.uuid4生成一个新的 UUID。
我的问题是:是否有可能uuid.uuid4生成重复的 UUID?
如果可能的话,如果生成重复的 UUID,如何防止 IntegrityError?

0 投票
1 回答
27 浏览

oracle - 使sur两列包含两个相关表的相同值的完整性约束

我的 oracle 数据库中有两个表。

PAQ 有很多数据。

以下是它们如何制作的示例:

有一列重复,称为 E_FLAG。

我想确保以下内容:
如果 data1 属于 paq1,则 data1.E_FLAG == paq1.E_FLAG。在 oracle 中使用完整性约束。

我这可能吗?