高效 SELECT 的 SQL 表设计

发布于 2024-11-02 21:51:47 字数 581 浏览 0 评论 0原文

用于解释我的结构的通用表格设置 - 简化以指定我的目标的核心。根据食谱。

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_配料
ing_id、ing_name
1、面粉
2、盐
3、黄油
4、Frosting


我需要选择每一行 tbl_items 及其成分。然后在 php 中,迭代每一行,以便我可以吐出结果语句:

Item: bread
其他信息:等等
成分:
1. 面粉
2.盐

就目前情况而言,我相信数组最终会是这样的:

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

这是正确的表格设置吗?在 php 中处理此问题的有效方法是什么?

感谢您的任何帮助。

Generic table setup to explain my structure - reduced to specify the core of my goals. Based after recipes.

tbl_item

item_id, item_name, misc_info
1, bread, etc.
2, cupcake, etc.

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, Flour
2, Salt
3, Butter
4, Frosting


I need to select every row of tbl_items, and its ingredients. Then in php, iterate through each row so I can spit out the resulting statement:

Item: bread
Misc Info: Etc.
Ingredients:
1. Flour
2. Salt

As it stands I believe the array will end up like this:

bread, etc., flour
bread, etc., salt
cupcake, etc., flour
cupcake, etc., frosting

Is this the proper table setup, and what is an efficient way of dealing with this in php?

Thanks for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

亚希 2024-11-09 21:51:47

使数据库结构简单直观。你所拥有的一切都很好。

如果您想在一次数据库调用中读出配方,您的选择是编写一个连接 3 个表的 SQL 查询,或者编写一个基于查询的视图并从中进行选择。如果这还不够快(并且您的数据库支持它),您可以创建视图并为其建立索引,以便将非规范化数据保留在磁盘上(从而避免联接)。

Make the database structure simple and intuitive. What you've got is fine.

If you want to read out the recipes in one DB call, your options are to write a SQL query that joins your 3 tables, or write a view over your query and select from that. If that isn't fast enough (and your DB supports it), you can create your view and index it, so that the denormalised data is persisted on disk (thus avoiding the joins).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文