我正在为一个网站设计一个MySQL模式,允许访问者首先查看产品列表(浏览或搜索),并查看每个产品的详细信息。在列表视图中只显示某些字段,并且在查看详细信息时将显示更多信息,以及一些相当大的列数据(例如,产品描述)。这种设计是很常见的。我想知道存储产品信息的好方法是什么。
一种选择是只有一个PRODUCT表。查看列表将有一个选择字段的子集,例如,名称、价格和主要产品图片,但不包括其他字段,如description,它可能相当大,例如VARCHAR(2000)。我的问题是,如果我做一个select name, price, main_pic from product where ...,描述字段是否也会被MySQL引擎加载到内存中,从而消耗更多的空间?
如果MySQL确实将其他未选中的字段加载到内存中,或者只是想将详细信息保存在另一个表中,那么可能会有一个PRODUCT_DETAIL表。这是一个好的设计吗?我感觉有点奇怪,因为PRODUCT和PRODUCT_DETAIL都有相同的主键,而且由于两者之间的主-细节关系,PRODUCT_DETAIL的主键也是引用PRODUCT的主键的外键!有没有人真的用过这种设计?
发布于 2016-01-24 00:36:28
https://stackoverflow.com/questions/34965892
复制相似问题