问题标签 [normalization]

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 回答
705 浏览

javascript - JavaScript 字符规范化

我正在使用 Google Translate API,如果我尝试翻译Mc Donald's,这就是我得到的结果:

Mc Donald's

对于任何其他数字字符引用,我如何转换''- 在 JavaScript 中 - 等等?谢谢!

0 投票
2 回答
626 浏览

mysql - MySQL - 数据库设计问题 - 有效的形式规范

我有一个“客户”表。每条记录都包含客户姓名、电子邮件、地址等。

我有一个“skus”表。每条记录都包含一个 SKU 的名称。例如“超级软件包”。

SKU 代表单一价格点的可购买商品。购买的物品可以包括一种或多种产品。

例如,名为“Super Software Bundle”的 SKU 记录可能代表两个产品:product1 和 product2。

出于可用性/易用性的原因,其他表不仅需要跟踪购买的 skus,还需要跟踪客户可能访问的单个产品。

问题:我应该如何表示数据库中 SKU 的可变大小性质,其中一个 SKU 可以表示 1 到 n 个产品?谢谢你的帮助。

0 投票
2 回答
138 浏览

php - MySQL 的规范化或替代方案

使用 PHP 和 MySQL 构建一个需要存储大量关于用户的属性(例如他们的出生日期、身高、体重等)的站点,这非常简单(单个表,许多属性(几乎所有属性都是必需的))。

但是,系统还需要存储其他信息,比如他们的口语、乐器能力等。总的来说,他们有十几个这样的特征。默认情况下,我假设创建一个单独的表(可能称为语言),然后创建一个具有复合 ID(user_id,language_id)的链接表。

我预见的问题是当访问者尝试使用这些标准搜索用户时。我们希望使用的数据集在发布时将拥有超过 15,000 名用户,主要功能将是搜索和优化用户。这意味着每天有数百个查询,并且使用包含十几个或更多 JOIN 的查询的前景并不吸引人。

所以我的问题是,有没有更有效的替代方案?我正在考虑的一种方法是将 M2M 值作为 ID 的 CSV 存储在用户表中,然后对其运行 LIKE 查询。我知道 LIKE 不是最好的,但它比加入更好吗?

任何可能的解决方案将不胜感激。

0 投票
8 回答
2362 浏览

sql - 规范化数据库对资源的影响是什么?

当从相对未规范化的形式中获取数据库并对其进行规范化时,如果有的话,资源利用率可能会发生什么变化?

例如,规范化通常意味着从更少的表中创建更多的表,这意味着数据库现在有更多的表,但其中许多表非常小,允许经常使用的表更好地适应内存。

更多的表也意味着需要更多的连接(可能)来获取抽象出来的数据,因此人们会期望系统需要执行的连接数量更多会产生某种影响。

那么,规范化未规范化的数据库对资源使用有什么影响(即会发生什么变化)?


编辑:为了添加一些上下文,我有一个现有的(即遗留)数据库,其中包含 300 多个可怕的表。大约 1/2 的数据是 TEXT,另一半是字符字段或整数。没有任何限制。我问的原因主要是为了让其他人相信事情需要改变并且不会降低性能或可维护性,以获得更多信息。不幸的是,我必须说服的人对非规范化数据库的性能优势了解得足够多,以至于希望尽可能避免规范化。

0 投票
4 回答
222 浏览

sql - 将 XML 数据保存在 sql 表中会是一种架构上的误解吗?

我有一个用于保存产品数据的 SQL 表。有些产品还有其他附加数据(例如:书籍有页数、封面类型;电影有时间长度等)。

我可以在 SQL 中使用单独的表来保留这些,保留 (name, value) 对。

我也可以将 XML 打包的数据保存在表的单个字段中。这不是一种标准化的方法,但对我来说似乎更自然。

0 投票
4 回答
1007 浏览

excel - 转换Excel文件的工具?(交换列,基本字符串操作等)

我需要将表格数据导入我的数据库。数据通过多方的电子表格(主要是 Excel 文件)提供。这些文件中的每一个的格式都相似但不相同,并且需要进行各种转换才能将数据按摩成适合导入的最终格式。此外,输入格式将来可能会发生变化。我正在寻找一种可以由普通用户运行和管理的工具来转换输入文件。

现在让我列出一些我想做的转换:

  • 交换列:

输入是:

输出是

  • 重命名列

输入是:

输出是

  • 根据查找表映射列,如上面的示例:在列 Category 中将字符串“Car”的每次出现替换为“automobile”
  • 基本数学:将价格列乘以某个因子
  • 基本字符串操作 假设价格列的格式是“3 x $45”,我想将其拆分为金额和价格两列
  • 按值过滤行:排除所有包含“昂贵”一词的行
  • 等等

我有以下要求:

  • 它可以在以下任何平台上运行:Windows、Mac、Linux
  • 开源、免费软件、共享软件或商业软件
  • 转换需要通过 GUI 进行编辑
  • 如果该工具需要最终用户培训才能使用,这不是问题
  • 它可以处理大约 1000-50000 行

基本上,我正在寻找一种图形工具,可以帮助用户规范化数据,以便可以导入,而无需编写一堆适配器。

你用什么工具来解决这个问题?

0 投票
4 回答
561 浏览

sql-server - 当两张表非常相似时,什么时候应该合并?

我有活动和照片,然后对两者发表评论。现在,我有两个评论表,一个用于与事件相关的评论,另一个用于照片评论。架构与此类似:

我的问题是我是否应该将它们组合起来,并添加一个单独的交叉引用表,但我想不出一种正确的方法。我认为这应该没问题,你的想法是什么?

编辑

根据沃尔特的回答(以及一些简单的阅读),我想出了这个:

结构之间真的有任何性能差异吗?对我来说,这似乎有点偏好。我确实看到了第二种模式的好处,如果我想为事件评论或照片评论添加一些特殊性,我有一个单独的表来执行此操作,如果我希望两者共享一个新属性,则有一个表可以添加新属性。

0 投票
3 回答
132 浏览

sql - 查询不是正常第三种形式的表

嗨,我有一个表,它是由一个懒惰的开发人员设计的,他没有以第三范式创建它。他将数组保存在表中,而不是使用 MM 关系。并且应用程序正在运行,因此我无法更改数据库架构。

我需要像这样查询表:

SELECT * FROM myTable WHERE 用户组 = 20

其中 usergroup 字段包含这样的数据:17,19,20 或者也可能只有 20 或只有 19。

我可以像这样搜索: SELECT * FROM myTable WHERE usergroup LIKE 20 但在这种情况下,它也会匹配包含 200 的字段,例如

有人知道吗?谢谢

0 投票
1 回答
544 浏览

c# - C# 中的“规范化”过程

有人可以向我解释一下 C# 中 3D 表面网格的归一化过程是什么吗?

在参考书中,有如下一行:

GetNormalize 方法用于将您的表面区域映射到 [-1, 1] 的区域,这可以让您在屏幕上获得更好的视图。

0 投票
1 回答
1864 浏览

ssis - SSIS 数据迁移:将平面表拆分为父 + 子/孙表

我需要将位于 SQL Server 2005 中的大型平面表中的数据迁移到一个新的 SQL Server 2005 架构中,该架构由一个父表和多个子表组成。这似乎与 SSIS 中的合并或合并连接相反,但我不明白我将如何实现这一点。非常感谢任何建议。见过其他人如何完成这类事情的例子吗?

平面源表 [FlatSource] 有 < 280K 记录和一些垃圾数据,所以我需要在某些时候处理这​​些事情。但是现在,这里是我需要完成的要点......

平面源表将主要映射到新的父表 [Parent]。也就是说:对于[FlatSource]中的每条记录,我都需要把这条记录移到[Parent]中。

完成后,我需要记录这个新父记录的 PK 并添加许多子记录。将 0-4 条记录添加到子表 [Child1] 时将使用此 PK。基本上可能有 0-4 列,如果填充将需要在 [Child1] 中使用来自 [Parent] 的 PK 的新记录。

完成此操作后,我需要将 0-4 条新记录填充到将使用来自 [Child] 的 PK 的 [Grandchild] 中。

感谢您提供的任何见解。我已经在 C# 中开始了一个项目,但我越深入,它就越像是 SSIS 的任务。

真挚地,

乔什·布莱尔·戈尔登,CO