纵表(垂直表)和横表(水平表)是数据库设计中两种不同的表结构方式。
原因:当实体属性非常多时,纵表会变得非常庞大,导致查询和维护效率降低。
解决方法:
原因:横表需要通过多表关联查询来获取完整数据,当关联表较多时,查询性能可能会成为瓶颈。
解决方法:
假设我们有一个电商平台的商品表,实体属性较多,我们可以将其拆分成两张表:商品基本信息表和商品扩展属性表。
商品基本信息表(product_info)
| 字段名 | 类型 | 描述 | |--------------|---------|----------| | product_id | INT | 商品ID | | product_name | VARCHAR | 商品名称 | | category | VARCHAR | 商品分类 |
商品扩展属性表(product_attribute)
| 字段名 | 类型 | 描述 | |--------------|---------|----------------| | attribute_id | INT | 属性ID | | product_id | INT | 商品ID | | attribute_name| VARCHAR | 属性名称 | | attribute_value| VARCHAR | 属性值 |
查询商品完整信息的SQL语句
SELECT
pi.product_id,
pi.product_name,
pi.category,
pa.attribute_name,
pa.attribute_value
FROM
product_info pi
LEFT JOIN
product_attribute pa ON pi.product_id = pa.product_id
WHERE
pi.product_id = 1;
领取专属 10元无门槛券
手把手带您无忧上云