问题标签 [rdbms]

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 投票
6 回答
121606 浏览

design-patterns - 关系数据库设计模式?

设计模式通常与面向对象的设计有关。
是否有用于创建和编程关系数据库的设计模式
许多问题肯定有可重用的解决方案。

示例将包括用于表设计、存储过程、触发器等的模式......

是否有此类模式的在线存储库,类似于martinfowler.com


模式可以解决的问题示例:

  • 存储分层数据(例如,具有类型的单个表与具有 1:1 键和差异的多个表......)
  • 存储具有可变结构的数据(例如,通用列 vs xml vs 分隔列...)
  • 非规范化数据(如何在影响最小的情况下做到这一点,等等......)
0 投票
2 回答
851 浏览

ms-access - 如何在 MS Access 中创建(类型、ID)(又名“多态”)-外键列?

在 Ruby-on-Rails 中,这称为“多态关联”。

我的应用程序中有几Commentable件事,每个表格如下:

我想添加一个Comments表格,如下所示:

我知道我以这种方式失去了数据库的引用完整性,但唯一的其他选择是拥有多个Comments表:PostComments, PersonComments, PhotoComments, ...

现在的问题:

我如何构建一个表单来了解如何进行查找,首先是从获取表名Comments.commentable_type,然后从获取 id Comments.commentable_id

0 投票
14 回答
3269 浏览

database - 为什么面向对象的数据库还没有成功(还)?

这就是问题所在。只给出一个你认为为什么 OODB 失败或者为什么现在许多系统仍然使用关系数据库的原因。

0 投票
8 回答
3910 浏览

ms-access - MS Access 问题 - 可扩展性/索引/事务

关于 MS Access 数据库的几个问题 -

大小:访问数据库的大小是否有限制?我问的原因是我们有一个包含几个简单表的访问数据库。数据库的大小约为 1GB。当我对其进行查询时,我发现它需要 10 多分钟才能运行。

通过适当的索引,MS Access 是否应该能够处理此问题,或者该技术是否存在基本限制。

这是 MS Access XP。

此外,MS Access 是否支持数据库事务、提交和回滚?

0 投票
11 回答
2316 浏览

xml - 为什么我会选择在关系数据库中存储和操作 XML?

现代 RDBMS 支持 XML 列类型和在存储过程中处理 XML 的功能。从历史上看,我总是将分层数据(无论是 OO 对象还是 XML)映射到关系表。鉴于对 XML 的广泛数据库支持,我应该改变我的方式吗?

0 投票
6 回答
4858 浏览

rdbms - 存储/访问有向图的最佳方式

我有大约 3500 个防洪设施,我想将它们表示为一个网络来确定流动路径(本质上是一个有向图)。我目前正在使用 SqlServer 和 CTE 递归地检查所有节点及其上游组件,只要上游路径不分叉很多,它就可以工作。但是,由于增加了上游复杂性,一些查询比其他查询花费的时间呈指数增长,即使它们在物理路径上并不远(即两个或三个“下游”段)。在某些情况下,我已经让它在终止查询之前超过十分钟。我使用的是一个简单的两列表格,一列是设施本身,另一列是第一列中列出的设施的上游。

我尝试使用当前工具添加索引以帮助加快速度,但这没有任何区别。而且,对于图中可能的连接,任何节点都可以有多个上游连接,并且可以从多个“下游”节点连接。

数据中肯定有可能存在循环,但我还没有找到验证这一点的好方法(除了 CTE 查询报告最大递归计数命中;这些很容易修复)。

所以,我的问题是,我存储这些信息是否错误?除了 CTE 之外,还有更好的方法来查询上游点吗?

0 投票
7 回答
6336 浏览

database - 函数到关系映射比对象到关系更容易吗?

对象关系映射已得到很好的讨论,包括在这里。我有一些方法以及陷阱和妥协的经验。真正的解决似乎需要对 OO 或关系模型本身进行更改。

如果使用函数式语言,是否会出现同样的问题?在我看来,这两种范式应该比 OO 和 RDBMS 更好地结合在一起。在 RDBMS 中以集合方式思考的想法似乎与函数式方法所承诺的自动并行性相吻合。

有没有人有任何有趣的意见或见解?行业现状如何?

0 投票
2 回答
483 浏览

sql - 您如何在数据库通信中有效地处理 BLOB 和数值数据?

SQL 数据库似乎是大多数软件的基石。但是,它似乎针对文本数据进行了优化。事实上,在执行任何涉及数字数据(特别是整数)的查询时,将数字转换为文本然后在应用程序和数据库之间以两种方式返回本机格式似乎效率低下。同样的低效率似乎也适用于 BLOB 数据。我的理解是,即使使用 Linq to SQL 之类的东西,这种双向转换也在后台发生。

有没有一般的方法可以用 SQL 绕过这种开销?是否有某些数据库管理系统比其他系统更有效地处理这个问题(即,使用非标准扩展/API)?

澄清。在下面的 select 语句中,IN 之后的数字列表可以更容易地作为 int 的原始数组传递,但似乎无法实现该优化级别。

0 投票
7 回答
861 浏览

database-design - 基于公式的定价。存储在 RDBMS 中并在应用层使用

我即将进入设计商品交易应用程序的第一阶段。该应用程序的一个主要功能是获取和评估定价信息。这个市场的定价不是固定的。它通常是市场基准 +/- 溢价。例如:(A和B是市场基准)

  • 价格 = A + 1 美元
  • 价格 = A + .5(AB)

交易的最终价格是使用在约定时间内应用的定价公式计算的。例如; 最终价格可能是装载商品前一周和后一周的平均 A + 1 美元。

目前,交易者正在 Excel 中捕获此详细信息,这使他们能够灵活地设置所需的公式,但此信息从未进入我们的会计系统,并且电子表格未连接到市场基准的实时预测,使得价格预测成为手动和缓慢的任务。

我正在寻找关于我可以使用哪些工具/技术在应用程序中输入、存储和评估公式的输入。

我们将使用 SQL Server 或 Oracle 作为数据库,客户端平台尚未固定,但您可以假设 WinForms/WPF、ASP.NET 或 Java webapp。

我知道这是一个相当广泛的问题,但我们还远远不够,无法更具体地说明将使用哪些技术。

谢谢

0 投票
6 回答
23401 浏览

mysql - 导致 INSERT 失败的触发器?可能的?

在清理这个答案时,我了解了一些关于TRIGGERMySQL 中的 s 和存储过程的知识,但令我震惊的是,虽然BEFORE INSERTBEFORE UPDATE触发器可以修改数据,但它们似乎不会导致插入/更新失败(即验证)。在这种特殊情况下,我能够通过以导致主键重复的方式操作数据来使其工作,这在这种特殊情况下是有道理的,但在一般意义上不一定有意义。

这种功能在 MySQL 中是否可行?在任何其他 RDBMS 中(我的经验仅限于 MySQL)?也许是THROW EXCEPTION样式语法?