首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1到多模式的非正态化

1到多模式的非正态化
EN

Stack Overflow用户
提问于 2012-10-10 13:20:28
回答 1查看 175关注 0票数 0

我在MySQL中有一个表结构,其中我有以下结构:

home_id,home_name,dateadded

我有另一个名为specs的表,其结构如下:

home_id,spec_key,spec_value

在它中,我可以有如下条目:

代码语言:javascript
复制
1, price, 500000
1, location, 90210
1, rooms, 3
1, washrooms, 3
1, furnished_basement, 0
2, location, 14410
2, garage_size, 3
2, price, 335000

为了搜索目的,我想对上面的内容进行去定向。表(denormalized_homes)结构如下所示:

代码语言:javascript
复制
home_id, price, location, rooms, washroom, furnished_basement, garage_size, dateadded

正如您可以从上面看到的,( a)并非所有条目都具有所有列的值。( b)表结构不利于INSERT INTOdenormalized_homesselect * fromspecs类型查询。我也不能使用存储过程或触发器(主机规则)。

到目前为止,我采取的策略是将home_id插入到denormalized_homes表中,然后使用类似于以下查询的内容在规范中的每个字段中运行:

代码语言:javascript
复制
UPDATE `denormalized_homes` dh, specs s SET dh.price = s.spec_value WHERE dh.home_id = s.home_id AND s.spec_key = "price";

为每个可能的列创建一个查询,然后运行它们。我只是在想一定有更好的方法,是吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-10 13:44:28

我想你可以这样做:

代码语言:javascript
复制
INSERT INTO denormalized_homes ()

SELECT h.home_id,
       price.spec_value price,
       location.spec_value location,
       rooms.spec_value rooms,
       washroom.spec_value washroom,
       furnished_basement.spec_value furnished_basement,
       garage_size.spec_value garage_size,
       h.date_added

FROM   homes h

       LEFT JOIN specs price
       ON price.home_id = h.home_id and spec_key = 'price'

       LEFT JOIN specs location
       ON price.home_id = h.home_id and spec_key = 'location'       

       LEFT JOIN specs rooms
       ON price.home_id = h.home_id and spec_key = 'rooms'

       LEFT JOIN specs washroom
       ON price.home_id = h.home_id and spec_key = 'washroom'

       LEFT JOIN specs furnished_basement
       ON price.home_id = h.home_id and spec_key = 'furnished_basement'

       LEFT JOIN specs garage_size
       ON price.home_id = h.home_id and spec_key = 'garage_size'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12820348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档