问题标签 [denormalized]

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 投票
3 回答
1079 浏览

hibernate - Hibernate:映射单向冗余列

在我的架构中,有一些冗余列用于加速报表查询。例如,销售的采购总额保存在表格的"purchase_total"列中"sale",但在模型中,它是通过将销售中每个购买的商品的售价相加来动态计算的。可以通过在 Sale 对象上调用“getPurchaseTotal”访问器来检索此值。

有没有办法在插入/更新时将此值映射到销售表中的 purchase_total 列,但在从数据库加载时不包含在销售对象的水合中?我猜它类似于派生或计算的列,但相反。

最好通过数据库本身的触发器来处理这个问题吗?

0 投票
2 回答
4910 浏览

mysql - 如果括号中有很多值,为什么这个 mysql IN (1,2,3,4...) 条件不起作用?

我在列中存储了一个由逗号分隔的状态列表:

像这样:1,2,3,4,5,6,7,8.. 等等,只是他们的 ID。

然后我正在执行查询以获取所有状态为 ID 8 的行,并且当状态列表中的项目很少时它可以工作。

这是查询和表:

如果列状态包含 10 个用逗号分隔的 ID,它将起作用,但如果它有 50 个或更多,它将不再起作用。在上面的结果中,它不会显示具有许多状态的行,包括 ID 为 8 的行。

任何的想法?我正在使用这种方法不必创建另一个表来保存合作伙伴和州之间的关系,还是我应该做得更好?

0 投票
3 回答
2287 浏览

mysql - 逗号分隔列表的Mysql WHERE问题

我需要帮助解决这个问题。

在 MYSQL 表中,我有一个字段:

我需要找到艺术家 uid 401 的所有记录

我这样做

我有所有记录,其中艺术家列表字段值仅为“401”,但如果我有 11,401,则此查询不匹配。

任何的想法 ?

(我不能使用 LIKE 方法,因为如果艺术家 uid 为 3(匹配 30、33、3333)...

0 投票
2 回答
113 浏览

mysql - 根据id的数组查询id

我的网站包含一个带有两个表的 mysql 数据库。一个表有一个名为“id_array”的字段,它包含一个如下所示的字符串:“1,3,7,78,89,102”。它表示第二个表中的 id 数组。

在第二个表中检索 id 的最佳策略是什么?我想要最快的方法。

目前我正在使用“SELECT * FROM first_table WHERE id IN (id_array)”。

我曾经一个一个地查询,但我认为它要慢得多。

如果有人有更好的结构来为我提供数据库,那就太好了。这个结构是我想出的最好的,但我很确定它不是那么有效。我需要一种快速便捷的方法来从第一个表中找到属于 id 的所有 id。

帮助将不胜感激。

0 投票
1 回答
195 浏览

sql - 如何处理嵌入在列中的列表和范围?

我无法控制我要处理的数据的格式。当然,我可以使用脚本语言来处理数据库之外的以下问题,但我想避免这种情况,因为我要处理的数据量很大,而且我想消除手动操作的必要性脚步。

简而言之,我有一个列表表。一个列表可能包含一个 3 位字符串、多个 3 位字符串、一个 3 位字符串范围,例如012-018,或多个 3 位字符串和 3 位字符串范围。例如:

我知道我知道

我想把它变成下表:

有没有办法在 SQL 中做到这一点?

0 投票
5 回答
13547 浏览

sql - SQL - 如何检查项目是否在记录的列表中

我有一个列名 MyRoles,其中包含存储在名为 UserRoles 的字段中的项目(整数)列表。我想编写一个查询来检查特定项目是否在列表中。该列表将如下所示:“1,2,3”

我不能使用 WHERE MyRoles

查询应该是什么样子?

这与我的想法类似:

没有答案很容易实现并且会让我在一条丑陋的道路上走得更远,这一事实清楚地表明规范化数据库始终是最好的选择。

0 投票
3 回答
1082 浏览

php - 使用逗号值连接表

我很难将 3 张桌子连接起来。我有一个 newsletter_items、newsletter_fields 和 newsletter_mailgroups,我想加入它们以获取新闻通讯列表。

newsletter_items 包含以下字段:

newsletter_fields 包含以下字段:

其中 field_letter_uid 是该字段所属的时事通讯。

和 newsletter_mailgroups 包含以下字段:

我想要的是将这 3 个表格组合起来,这样我就可以得到所有时事通讯的列表,如下所示:

所以简而言之,我希望我的 SQL 查询加入 3 个表,并在该过程中从邮件组表中选择接收者并显示它们以逗号分隔,如 Group1、Group 2

这是我现在得到的

但我似乎无法弄清楚如何让邮件组进入其中。

0 投票
5 回答
16420 浏览

sql - 是否可以在逗号分隔的列中查询特定值?

我有(并且不拥有,所以我不能更改)一个布局与此类似的表格。

我需要返回包含特定类别 ID 的行。我首先使用 LIKE 语句编写查询,因为值可以在字符串中的任何位置

SELECT id FROM table WHERE categories LIKE '%c2%'; 将返回第 2 行和第 3 行

SELECT id FROM table WHERE categories LIKE '%c3%' and categories LIKE '%c2%';会再次让我第 2 行和第 3 行,但不是第 4 行

SELECT id FROM table WHERE categories LIKE '%c3%' or categories LIKE '%c2%';将再次让我获得第 2、3 和 4 行

我不喜欢所有的LIKE陈述。我FIND_IN_SET()在 Oracle 文档中找到了,但它似乎不适用于 10g。我收到以下错误:

运行此查询时:(SELECT id FROM table WHERE FIND_IN_SET('c2', categories);来自文档的示例)或此查询:(SELECT id FROM table WHERE FIND_IN_SET('c2', categories) <> 0;来自 Google 的示例)

我希望它返回第 2 行和第 3 行。

有没有更好的方法来编写这些查询而不是使用大量LIKE语句?

0 投票
1 回答
2183 浏览

php - unserialize() 数据库的值并在 foreach 之后将其放入 json_encode

$row->units我使用函数serialize()=>插入数据库值(数组)[$row->units],如何使用unserialize()in json_encodewith回显它们$row->name?(在 jQuery 中为 ajax 调用返回发送)

数据库中的列:

$行->单位=> a:6:{i:0;s:15:"Coffee";i:1;s:14:"Satellite";i:2;s:11:"Game Notes";i:3;s:14:"Internet";i:4;s:10:"Pool";i:5;s:0:"";}

$行->名称=>George Kurdahi

上面代码的错误是:

遇到 PHP 错误

严重性:通知

消息:unserialize() [function.unserialize]:281 字节的偏移 277 处出错

文件名:model.php

行号:22

0 投票
4 回答
10389 浏览

sql - Oracle SQL 获取第 n 个元素正则表达式

我正在尝试使用 Oracle 中的 SQL 获取逗号分隔字符串中的第 n 个元素。

到目前为止我有以下..

但是当元素为空时它不起作用,即,有人可以帮忙吗?