标签: normalizing

什么是更好的数据库设计:更多表或更多列?

一位前同事坚持认为,每个数据库中包含更多列的表更少,每个表更少的表更少.例如,而不是具有名称,地址,城市,州,邮政等列的客户表,您将拥有名称表,地址表,城市表等.

他认为这种设计更有效,更灵活.也许它更灵活,但我没有资格对其效率发表评论.即使效率更高,我认为增加的复杂性可能会超过这些收益.

那么,对于包含更少列的更少列的更少列,是否有任何显着优势?

database normalizing database-design

71
推荐指数
6
解决办法
5万
查看次数

对矢量进行归一化需要什么?

试图更多地理解向量.

对矢量进行归一化需要什么?

如果我有一个向量,N =(x,y,z)

当你标准化它时你实际得到了什么 - 我得到你必须划分x/| N |的想法 Y/| N | &z/| N |.我的问题是,为什么我们这样做,我的意思是我们从这个等式中得到什么?

这样做的意义或'内部'目的是什么.

有点数学问题,我道歉,但我真的不清楚这个话题.

normalizing vector

30
推荐指数
3
解决办法
3万
查看次数

您如何确定数据库规范化的程度?

在创建数据库结构时,要遵循哪些好的指导方针或确定数据库应该规范化的好方法?您是否应该创建一个未规范化的数据库并在项目进展时将其拆分?您是否应该将其完全标准化并根据性能需要组合表格?

language-agnostic normalizing database-design

18
推荐指数
3
解决办法
6208
查看次数

使用ruby标准化数据集

我有一个范围从1到30,000的数据集

我想将它标准化,使其变为0.1到10

这样做的最佳方法/功能是什么?

如果您能提供一些示例代码,我将非常感谢!

ruby normalizing

12
推荐指数
3
解决办法
4011
查看次数

单个维度内非重叠范围的数据结构

我需要一个可以在一个维度内存储非重叠范围的数据结构.不需要完全覆盖整个尺寸范围.

一个例子是会议室调度程序.维度是时间.没有两个时间表可能重叠.会议室并非始终安排.换句话说,对于给定时间,最多可以有一个时间表.

快速解决方案是存储开始和结束时间的范围.

Range {
    Date start
    Date end
}
Run Code Online (Sandbox Code Playgroud)

这是非规范化的,要求容器不强制执行.对于两个相邻的范围,前一个'结束将在下一个开始时是多余的.

另一种方案可能涉及存储每个范围的一个边界值.但是对于连续的范围序列,总会有一个边界值而不是范围.为了解决这个问题,序列可以表示为交替的边界值和范围:

B =边界值,r =范围

BrBrB

数据结构可能如下所示:

Boundary {
    Date value
    Range prev
    Range next
}

Range {
    Boundary start
    Boundary end
}
Run Code Online (Sandbox Code Playgroud)

从本质上讲,它是具有交替类型的双向链表.

最终,我使用的任何数据结构都将在内存(应用程序代码)和关系数据库中表示.

我很好奇学术界或行业所尝试的解决方案是什么.

normalizing database-design data-structures

8
推荐指数
1
解决办法
3879
查看次数

SQL中的分层标记

我有一个PHP Web应用程序,它使用MySQL数据库进行对象标记,其中我使用了标记结构作为此SO问题的答案.

我想实现一个标记层次结构,其中每个标记都可以有一个唯一的父标记.然后搜索父标签T将匹配T的所有后代(即T,父母为T的标签(T的子女),T的孙子等).

最简单的方法是在标签表中添加一个ParentID字段,其中包含标签父标签的ID,如果标签没有父标签则添加一些幻数.然而,搜索后代然后需要重复完整搜索数据库以找到每个"代"中的标记,我想避免这些标记.

一个(可能)更快,但更少规范化的方法是使用一个包含每个标记的所有子项的表,甚至每个标记的所有后代.然而,这会冒数据库中数据不一致的风险(例如,标签是多个父项的子项).

是否有一种很好的方法可以使查询快速查找后代,同时尽可能保持数据的标准化?

mysql sql database tags normalizing

8
推荐指数
2
解决办法
2670
查看次数

寻找反转sprintf()函数输出的算法

我正在开发一个需要解析日志文件的项目.我正在寻找一个快速的算法,将采取像这样的组消息:

P1的温度为35°F.

P1的温度为40°F.

P3的温度为35F.

记录器停了下来.

记录器开始了.

P1的温度为40°F.

并以printf()的形式提出一些东西:

"The temperature at P%d is %dF.", Int1, Int2" 
{(1,35), (1, 40), (3, 35), (1,40)}
Run Code Online (Sandbox Code Playgroud)

该算法需要足够通用以识别消息组中的几乎任何数据负载.

我尝试搜索这种技术,但我甚至不知道要搜索的正确术语.

algorithm logging printf parsing normalizing

5
推荐指数
2
解决办法
1445
查看次数

处理"超标准化"数据

我的雇主,一家小型办公用品公司,正在转换供应商,我正在查看他们的电子内容,以提出一个强大的数据库架构; 我们以前的模式几乎没有任何想法就被抛在了一起,而且它几乎导致了一个无法忍受的数据模型,其中包含损坏的,不一致的信息.

新供应商的数据比旧供应商的数据要好得多,但他们的数据就是我称之为超标准化的数据.例如,他们的产品类别结构有5个级别:Master Department,Department,Class,Subclass,Product Block.此外,产品块内容具有产品的长描述,搜索术语和图像名称(这个想法是产品块包含产品和所有变体 - 例如特定笔可能有黑色,蓝色或红色墨水;所有这些项目基本上是相同的,所以它们适用于单个产品块).在我给出的数据中,这表示为产品表(我说"表",但它是带有数据的平面文件),其中引用了产品块的唯一ID.

我试图提出一个强大的模式来容纳我提供的数据,因为我需要相对较快地加载它,他们给我的数据似乎与他们的数据类型不匹配在他们的样本网站(http://www.iteminfo.com)上提供演示.无论如何,我不打算重复使用它们的表示结构,所以这是一个没有实际意义的点,但我正在浏览网站以获得有关如何构建事物的一些想法.

我不确定的是我是否应该以这种格式保存数据,或者例如使用自引用关系将Master/Department/Class/Subclass合并到单个"Categories"表中,并将其链接到a产品块(产品块应该分开,因为它不是"类别"本身,而是一组给定类别的相关产品).目前,产品块表引用了子类表,因此如果将它们合并在一起,这将更改为"category_id".

我可能会创建一个电子商务店面,利用Ruby on Rails中的这些数据(或者说这是我的计划,无论如何)所以我试图避免以后遇到障碍或者有一个膨胀的应用程序 - 也许我我给了它太多的想法,但我宁愿安全而不是抱歉; 我们以前的数据真是一团糟,由于数据不一致和不准确,使公司损失了数万美元.此外,我将通过确保我的数据库是健壮的并强制执行约束(我计划在应用程序级别执行它)来稍微摆脱Rails约定,所以这也是我需要考虑的事情.

你会如何解决这样的情况?请记住,我已经将数据加载到模拟表结构的平面文件中(我有文档说明哪些列是哪些列以及设置了哪些引用); 我正在试图决定是否应该像现在这样将它们保持正常化,或者我是否应该寻求巩固; 我需要知道每个方法将如何影响我使用Rails对网站进行编程的方式,因为如果我进行整合,单个表中基本上会有4个"级别"的类别,但这似乎比单独的表更易于管理每个级别,因为除了Subclass(直接链接到产品块),他们不这样做除了显示下一级别的类别之外的任何东西.对于处理这样的数据的"最佳"方式我总是感到茫然 - 我知道"正常化直到它受到伤害,然后反正规化直到它起作用"这句话但是我从来没有真正实现过它.

sql normalizing database-design ruby-on-rails denormalization

4
推荐指数
1
解决办法
1201
查看次数

数据库非规范化机会

我正在寻找一种策略,以阻止分支表的重复问题.例如,作为一个虚构的用例,假设我有一个用户表,其中包含他们的姓名,登录名,密码和其他元数据.在这种特定情况下,假设用户被限制为按照特定的IP子集登录.因此,我们有1:M的关系.每次出现如下用例时,您的正常工作流程包括具有"用户"表和"user_ips"等表格,在这种情况下,您将拥有诸如pk(ip_id),fk之类的内容( user_id)和user_ips侧的IP.

对于类似的情况,你们这些人通常会像上面那样流行吗?有机会在这里有效地反规范化吗?也许以某种CSV分隔的方式将IP存储在BLOB列中?您今天正在部署的策略有哪些?

mysql database normalizing database-design denormalization

2
推荐指数
2
解决办法
816
查看次数

规范化现有的MS Access数据库

我有一个大型访问数据库,我需要将其规范化为五个表和一个查找表.我理解规范化背后的理论并且已经勾勒出了表格的外观,但我对如何转换表格以使数据库规范化感到迷茫.表分析仪不提供我想要的故障.

ms-access normalizing

2
推荐指数
1
解决办法
5595
查看次数