我正在为网站设计MySQL架构,允许访问者首先查看产品列表(浏览或搜索)并详细查看每个产品。列表视图中仅显示某些字段,并且在查看详细信息时会显示更多信息,并显示一些相当大的列数据(例如,产品描述)。设计很常见。我想知道什么是存储产品信息的好方法。
一种选择就是拥有一个PRODUCT
表。查看列表将选择字段的子集,例如,名称,价格和主要产品图片,但不包括其他字段,例如可能相当大的描述,例如,VARCHAR(2000)。我的问题是我做了select name, price, main_pic from product where ...
,描述字段是否也会被MySQL引擎加载到内存中,从而占用更多的空间?
如果MySQL确实将其他未选择的字段加载到内存中,或者只是想将详细信息保存在另一个表中,则可能会有PRODUCT_DETAIL
表。这是一个很好的设计吗?我觉得有点奇怪,因为PRODUCT
和PRODUCT_DETAIL
将具有相同的主键,并且由于两者之间的主 - 细节关系,PRODUCT_DETAIL
的主键也会是引用PRODUCT
主键的外键!有人真的使用过这种设计吗?