SQL数据库中反规范化的实际示例?

问题描述 投票:0回答:1

最近二十分钟我一直在阅读有关非规范化的内容,但无法获得代码的简洁示例。

这是非规范化吗?

1.我们有一个规范化的数据库:

Table_1:customer_id(主键)国家市街房屋编号

Table_2:product_id(主键)customer_id(外键)product_storage_building

Table_3:product_id(外键)产品名称product_colorproduct_origin

  1. 但是,将所有三个表联接起来对我的查询来说花费的时间太长,因此我从Table_1Table_2中创建了一个新表>

    CREATE OR REPLACE TABLE Denormalized_Data AS
    (
     SELECT customer_id, 
            country, 
            city,
            street, 
            house_number,
            product_id,
            product_storage_building
     FROM Table_1
          LEFT JOIN Table_2
          ON Table_1.cusomter_id = Table_2.customer_id
    )
    
  2. 然后按如下所示连接到Table_3

  3.  SELECT customer_id, 
            country, 
            city,
            street, 
            house_number,
            product_storage_building,
            Denormalized_Data.product_id
            product_name,
            product_color,
         FROM Denormalized_Data
         LEFT JOIN Table_3
         ON Denormalized_Data.product_id = Table_3.product_id
    

    现在,这将使我的查询运行更快-可以将上述整个过程描述为非规范化吗?

谢谢

最近20分钟,我一直在阅读有关非规范化的信息,但无法获得代码的简洁示例。这是非规范化吗? 1.我们有一个规范化的数据库:表_1:customer_id(...

sql google-bigquery denormalization
1个回答
0
投票

是,您正在显示一种非正规化。

© www.soinside.com 2019 - 2024. All rights reserved.