SQL表设计高效的选择


SQL Table Design For Efficient SELECT

通用表设置来解释我的结构-简化为指定我的目标的核心。基于食谱。

tbl_item

item_id, item_name, misc_info
1、面包等
2、纸杯蛋糕等

tbl_ingredients_item

ii_id, ing_id, item_id
1,1,1
2,1,3
3,2,1
4、2、4

tbl_ingredients
ing_id, ing_name
1、面粉
2、盐
3、黄油
4、结霜


我需要选择tbl_items的每一行及其成分。然后在php中,遍历每一行,这样我就可以输出结果语句:


项目:面包杂项信息:等
成份:
1. 面粉
2. 盐

我相信这个数组最终会变成这样:

面包等,面粉
面包等,盐
纸杯蛋糕等,面粉
纸杯蛋糕等,糖霜

这是正确的表设置,什么是一个有效的方法来处理这个在php?

谢谢你的帮助。

使数据库结构简单直观。你得到的很好。

如果你想在一个DB调用中读取食谱,你的选择是写一个SQL查询,连接你的3个表,或者在你的查询上写一个视图,并从中选择。如果这还不够快(并且您的DB支持它),您可以创建视图并对其建立索引,以便将非规范化的数据持久化到磁盘上(从而避免连接)。