数据库设计中的一对一主 - 细节关系

时间:2016-01-23 16:28:14

标签: mysql database foreign-key-relationship

我正在为网站设计MySQL架构,允许访问者首先查看产品列表(浏览或搜索)并详细查看每个产品。列表视图中仅显示某些字段,并且在查看详细信息时会显示更多信息,并显示一些相当大的列数据(例如,产品描述)。设计很常见。我想知道什么是存储产品信息的好方法。

一种选择就是拥有一个PRODUCT表。查看列表将选择字段的子集,例如,名称,价格和主要产品图片,但不包括其他字段,例如可能相当大的描述,例如,VARCHAR(2000)。我的问题是我做了select name, price, main_pic from product where ...,描述字段是否也会被MySQL引擎加载到内存中,从而占用更多的空间?

如果MySQL确实将其他未选择的字段加载到内存中,或者只是想将详细信息保存在另一个表中,则可能会有PRODUCT_DETAIL表。这是一个很好的设计吗?我觉得有点奇怪,因为PRODUCTPRODUCT_DETAIL将具有相同的主键,并且由于两者之间的主 - 细节关系,PRODUCT_DETAIL的主键也会是引用PRODUCT主键的外键!有人真的使用过这种设计吗?

1 个答案:

答案 0 :(得分:0)

这个问题很相似,可以帮到你。

问题:select * vs select column

并且还使用了主 - 细节类型关系,这是一种很好的设计方法。