标签: denormalization

在数据库中存储多个选择值

假设我提供用户检查她说的语言并将其存储在数据库中.重要的一点是,我不会搜索db中的任何值,因为我将有一些单独的搜索引擎用于搜索.现在,存储这些值的显而易见的方法是创建一个表格

UserLanguages
(
 UserID nvarchar(50),
 LookupLanguageID int
)
Run Code Online (Sandbox Code Playgroud)

但该网站将是高负荷,我们正试图消除任何可能的开销,所以为了避免在UI上显示结果时与主成员表的连接,我想在主表中为用户存储语言,拥有它们逗号分隔,如"12,34,65"

同样,我不搜索它们,所以我不担心必须在该列上进行全文索引.

我真的没有看到这个解决方案的任何问题,但我忽略了什么?

谢谢,安德烈

sql database-design data-modeling denormalization

3
推荐指数
4
解决办法
5708
查看次数

表链,何时反规范化?

假设TABLE-A在TABLE-B中可以有一行或多行,它们可以在TABLE-C中有一行或多行,它们可以在TABLE-D中有一行或多行......依此类推.

假设我在TABLE-Z并且需要知道有关TABLE-A的详细信息.我是否从TABLE-Z一直到TABLE-A进行SQL查询?在某些时候,如果说TABLE-Z有一个FK到TABLE-A那么也许会很好,所以查询不会那么痛苦.但是,如果我把那个FK,我想我会破坏正常化,对吧?

关于如何处理这个问题的一般建议?

mysql database-design normalization denormalization denormalized

3
推荐指数
1
解决办法
281
查看次数

数据库非规范化机会

我正在寻找一种策略,以阻止分支表的重复问题.例如,作为一个虚构的用例,假设我有一个用户表,其中包含他们的姓名,登录名,密码和其他元数据.在这种特定情况下,假设用户被限制为按照特定的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
查看次数

问题:编写MySQL解析器来拆分JOIN并将它们作为单独的查询运行(动态地对查询进行非规范化)

我试图找出一个脚本来获取MySQL查询并将其转换为单独的查询,即动态地对查询进行非规范化.

作为一个测试我构建了一个简单的文章系统,有4个表:

  • 用品
    • article_id的
    • article_format_id
    • ARTICLE_TITLE
    • article_body
    • ARTICLE_DATE
  • article_categories
    • article_id的
    • CATEGORY_ID
  • 类别
    • CATEGORY_ID
    • category_title
  • 格式
    • 业态编号
    • format_title

一篇文章可以在多个类别中,但只有一种格式.我觉得这是现实生活中的一个很好的例子.

在列出所有文章的类别页面上(同时提取format_title),可以使用以下查询轻松实现:

SELECT articles.*, formats.format_title 
FROM articles 
INNER JOIN formats ON articles.article_format_id = formats.format_id 
INNER JOIN article_categories ON articles.article_id = article_categories.article_id 
WHERE article_categories.category_id = 2 
ORDER BY articles.article_date DESC
Run Code Online (Sandbox Code Playgroud)

但是,我尝试构建的脚本将接收此查询,解析它并单独运行查询.

所以在这个类别的页面示例中,脚本将有效地运行它(动态计算):

// Select article_categories
$sql = "SELECT * FROM article_categories WHERE category_id = 2";
$query = mysql_query($sql);
while ($row_article_categories = mysql_fetch_array($query, MYSQL_ASSOC)) {

    // Select articles
    $sql2 = "SELECT * FROM articles WHERE …
Run Code Online (Sandbox Code Playgroud)

php mysql sql dynamic-sql denormalization

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

mysql数据库链式表非规范化

我有一个db denormalization的设计问题.
我正在建立一个相对较大的数据库,需要尽可能地优化它.

这是一个非常简化的问题模型.
图片中的所有表都是链接的,并且使用规范化的数据库来获取来自特定国家/地区的所有用户,我必须加入所有表.那是cca 250个国家x cca 12000个城市x cca 625000个地区x?地址x?用户......简而言之,这是很多加入,这需要很长时间.

我想要做的是country_iduser表中创建冗余,这样我就可以在没有任何连接的情况下获得相同的查询.

问题是,在这种模型中保持一致性的最佳做法是什么(顺便说一句,使用MySql)?

一种方法,也许最快的方法是在插入/更新/删除数据时确保应用程序级别的一致性.

其他是存储过程,我真的看不出任何优点.只有直接调用它们才能确保一致性.如果您想在没有程序的情况下进行一些更改,则一致性会中断.

我一直在研究触发器...不确定如何实现它,以及我将在性能上获得多少.

无论如何,最好确保数据库级别的一致性.

有什么建议?

样本模型

mysql sql database database-design denormalization

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

SQL数据库中的非规范化或规范化(继承数据)

我继承了数据对象(例如,User,Employee,Manager等).我们使用自编的ORM来管理MySql数据库中的数据.如何存储数据更好:

  • 标准化格式划分为以1对1关系链接的不同MySql表(并使用多个连接来管理数据);

  • 或者在一个phisycal表中使用非规范化方法,在每个特定情况下都有大量未使用的字段.

先感谢您

mysql orm inheritance normalization denormalization

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

我应该对我的表进行非规范化,我应该对FK列进行非规范化

我有一个表的列created_time(日期时间)和foreign_key我需要检索所有的行xforeign_key与创建的最后一排xforeign_key是让说,在2分钟(和检索所有与该日行)

我的问题:什么对性能有好处,每次创建一行时添加一个存储最后一行创建日期的列,或者使用更复杂的查询来检索最后一行加入的那些行?

mysql sql database denormalization

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

非规范化数据

我使用此R代码将数据标准化为最小值和最大值:

normalize <- function(x) {
    return ((x - min(x)) / (max(x) - min(x)))
  }

mydata <- as.data.frame(lapply(mydata , normalize))
Run Code Online (Sandbox Code Playgroud)

如何对数据进行非规范化?

r normalization denormalization minmax

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

Django非规范化和一致性:

因为我在Django中很新,所以我在这里要求对Django中进行非规范化的最佳实践提出一些建议.按照我的意见,我正在考虑做这样的事情:

我有2个型号:

类别:

 name = m.CharField(max_length = 127)
Run Code Online (Sandbox Code Playgroud)

文章:

 name = m.CharField(max_length = 127)
 category = m.ForeignKey(Category)
 category_name = m.CharField(max_length = 127)
Run Code Online (Sandbox Code Playgroud)

我希望这发生:

当我更改任何类别的名称以反映所有文章中的更改时.现在,当我们没有一个或两个字段但大约10-20个字段保持同步时,最佳做法是什么?

谢谢你的帮助 (:

django consistency denormalization

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

关于Firebase非规范化博客文章的澄清

我刚刚阅读了Firebase博客文章标题为Denormalizing Your Data Is Normal,我要求澄清.

在考虑因素段落之前,我一直在使用它.具体来说,以下内容:

"评论的修改很简单:只需将/ comments下的评论值设置为新内容.要删除,只需删除/ comments中的评论 - 以及每当您在代码中的其他地方遇到不存在的评论ID时在/ comments中,您可以假设它已被删除并正常进行"

对于修改,为什么我不必修改/ links和/ users下存储的重复注释?

对于删除,我是否正确理解,一旦删除注释,我必须在所有读取逻辑中使用逻辑来交叉检查/注释以防它被删除?

谢谢!

denormalization firebase

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