问题标签 [relational-database]

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 投票
4 回答
2531 浏览

excel - 我可以将关系数据放入 Excel 数据透视表吗

我有一张表(我们以葡萄酒为例),上面列出了我地窖里的每一瓶酒、我买的时间、付了多少钱等。

有一列以逗号分隔的标签描述葡萄酒,例如“Fruity, White”。

我已经根据该数据创建了一个数据透视表,并将描述作为过滤列。但是我不能用“白色”过滤它。我必须找到每个包含“白色”的描述,例如“干、白”、“白、脆”等。

作为一个 RDBMS 背景,我的自然倾向是将标签放在他们自己的表中,与葡萄酒行键控,这样每个葡萄酒行就有零个或多个标签行。

如何,我到底如何使用它来过滤酒行?

0 投票
5 回答
794 浏览

c# - 列表项目删除问题

不要害怕大量的代码。问题很普遍。我只是提供了代码以更好地理解问题。

我试图找出一种处理具有多对多关系的表的标准方法。我几乎完成了。这里TeacherCourse有M:M的关系。我的课程设计如下:

Teacher- 班级:

Course绝对类似于Teacher- 类。并且映射类如下:

现在我的问题是,这段代码不起作用?

这不起作用,因为它可能找不到匹配项或获取访问器正在返回只读列表。

我应该如何重构我的教师/课程 - 类来实现这一目标?

没有例外。持久性代码没有问题。项目不会被移除。

为什么professorXyz.Items.Contains(cpp);返回错误?

检查什么?

0 投票
1 回答
266 浏览

django - 找出调度程序关系模型

我正在尝试解决关系模型以制作 Django 应用程序。

我不会像麦当劳的工作人员调度员那样。我的意思是带有彩色针脚的网格,标记谁将在给定工作日的给定时间工作。

我确实尝试用谷歌搜索一些例子,但我没有找到任何东西。我需要一些理论/参考书目来构建我的模型并将其编码到我的应用程序中。

提前致谢

0 投票
4 回答
12303 浏览

database-design - 将 xml 模式转换为关系模型

你们知道吗,我们如何将 XML Schema 转换为关系模型?涉及哪些步骤?更准确地说,我们如何仅通过查看 XML Schema 来确定表名、列名和这些表上的关系,在关系模型上会是什么样子?

如果您有任何教程链接,示例,请与我分享。我非常感谢您在这方面的帮助。

谢谢

0 投票
7 回答
4803 浏览

relational-database - “关系数据库”中的“关系”对我们意味着什么?

我知道,关系数据库是一个数据库,其中一个表中的字段链接到其他表中的行,就像这样。

但我无法理解这对我作为 Web 开发人员意味着什么!

据我所知,带有连接和嵌套选择的查询会降低性能(尤其是带有数十个连接的 drupal 风格的查询)。更重要的是,对数据库的任何查询都是瓶颈,然后你有很多用户,你必须缓存每个选择请求。

如果缓存每个选择请求,最好缓存简单的请求而不是复杂的。您可以缓存“select * from tbl1 where id = 123”和“select * from tbl2 where id = 456”或“select * from tbl1, tbl2 where ...”,但如果您选择第二种方式,您将需要缓存对象的每个组合 - 这并不酷。

好的,现在我们只使用非常简单的查询,例如“select * from tbl1 where id = 123” of “select id from tbl1 order by id limit 0, 30”并缓存它们(或者我们可以只缓存第一种类型的查询,无论如何)。有查询而不是简单的 INSERT、DELETE 和 UPDATE 都是我们需要和使用的!

正如我们所见,所有关系逻辑都使用应用程序的主要语言,而不是 SQL。那么,为什么我们需要所有这些关系性的东西呢?他们的意思是什么?“关系”类型有什么其他类型没有但需要的东西?如果我们不使用关系特性,为什么每个人仍然使用 MySQL 或任何关系数据库,即使他关心性能?

这种类型的数据库已经成为一种标准。为什么?我没有线索。除了 GAE 中的 on 之外,我几乎从未听说过有人使用非关系数据库。

我错过了什么吗?

0 投票
1 回答
506 浏览

database - 在 MySQL 关系数据库中选择数据时为空集

我有一些包含几十个表的关系 MySQL 数据库...我的查询长 1000 英尺,并从几乎所有表中选择数据...我也有我的“主”表,所有其他表都指的是那个表。当我在主表中输入一行并在其他表中为该行创建所有关系时,我的查询工作正常。但是,如果我在主表中输入一行而没有其他地方我会得到空集。但我想在我的结果中至少获得这些信息。或者,当然,在其他表中输入的所有信息,无论某些表没有该记录(行)的信息这一事实......

感谢帮助!

更新:

我不使用 JOIN 语法,我的查询类似于:

0 投票
2 回答
817 浏览

mysql - 版本化和索引数据存储

我需要以易于索引的方式存储实体的所有版本,并且想知道是否有人输入了要使用的系统。

如果没有版本控制,系统只是一个关系数据库,每个人都有一行。如果此人的状态发生变化,则该行将更改以反映这一点。使用版本控制,条目应该以这样的方式更新,以便我们总是可以回到以前的版本。如果我可以使用时态数据库,这将是免费的,我将能够询问“截至昨天下午 2 点住在都柏林且 30 岁的所有人的状态如何”。不幸的是,似乎没有任何成熟的开源项目可以做临时性的。

一个非常讨厌的方法是在每次状态更改时插入一个新行。这会导致重复,因为一个人可以有许多字段,但每次更新只能更改一个。然后为给定时间戳的每个人选择正确的版本也很慢。

理论上应该可以使用关系数据库和版本控制系统来模拟时间数据库,但这听起来很可怕。

所以我想知道是否有人以前遇到过类似的事情以及他们是如何解决的?

更新 正如 Aaron 所建议的,这是我们目前使用的查询(在 mysql 中)。超过 200k 行的表在我们的表上肯定很慢。(id = 表键,person_id = 每个人的 id,如果这个人有很多修订,则重复)

从人员 p 中选择姓名,其中 p.id =(从人员中选择 max(id),其中人员 ID = p.person_id 和时间戳 <= :timestamp)

更新 看起来最好的方法是使用临时数据库,但鉴于没有任何开源数据库,下一个最佳方法是每次更新存储一个新行。唯一的问题是重复未更改的列和缓慢的查询。

0 投票
8 回答
10522 浏览

database - 关系数据库和数学?

任何人都可以建议对关系数据库采用数学方法的资源吗?我猜基本上是关系代数。

我有数学背景,现在从事数据库方面的大量工作,并希望缩小差距。

0 投票
3 回答
4984 浏览

sqlite - SQLite - 选择相同数据/列的多个条目

我对SQLite有点陌生,我对我的数据库设计有点进退两难。我会解释的。假设您和您的朋友在 Internet 上使用多个不同的昵称(每人可能不止一个)。我们这里有一个人的 ID 和这个人使用的所有昵称的列表。这是大列表中的单个条目。这里的目标是通过使用 SQLite 以一种 SELECT 语句可用于获取包含指定昵称的所有条目的方式存储此数据。

我考虑过创建一个包含两列的表,第一列是 ID(主键),另一列是包含CSV格式昵称的 TEXT。但是在这个例子中,我不知道如何编写 select 语句来搜索和匹配存储在 CSV 中的昵称。

想法?

0 投票
2 回答
254 浏览

null - 非空外键作为数据库标准

背景:今天,在使用 SQL Server Reporting Services 时出现了一个问题。报告查看器中的 SSRS 下拉参数似乎不允许您指示(空)选项,以便您可以看到该参数为空的报告。基本上,表 A 是一个可空引用表 B 的表;由于报告使用表 B 填充下拉列表,因此没有可显示为选项的空值,因此您无法选择所有具有空值 B 的 A。

我真正的问题来自我正在回答的管理类型对上述问题的潜在下意识反应。当我解释发生了什么时,她发布了一项新的要求,即所有外键都必须是非空的,并且每个实体都应该插入一个“默认”记录,这是一个新标准,似乎可以解决报告工具中的这个问题。基本上,如果你有一个 Cat 表,那么 Cat.Owner 永远不应该为空,而是应该引用 Person 表中的默认记录,即“默认”Person。

虽然这可能有助于解决 SSRS 问题,但它可能会损害使用数据库的服务和应用程序的开发/维护,因为它们现在不仅要考虑空值(此时允许),而且还要查找并正确使用“默认”记录。我曾想过试图说服她放弃这项任务,但在我决定这样做之前,我想从有经验的人那里收集一些信息。

有人可以权衡一下这可能会有所帮助或伤害吗?

有人将其作为数据库标准吗?任何问题,发展或其他方面,我应该注意吗?