我今年 14 岁,正在自学 PHP。我要为我爸爸的割草机维修店建立一个零件数据库。
每台割草机都有“OEM”编号,但 OEM 零件价格昂贵。我爸爸有制造与这些 OEM 零件兼容的零件的供应商,在目录的后面有目录零件号的 OEM 图表
我希望能够在搜索字段中输入 OEM 编号,然后显示每个兼容的目录零件编号及其来自的目录...我希望这是清楚的。
现在我已经从目录中提取数据并有 6 个这样的数据库表
id | oem | partnumber
------+------------+----------------------
| |
表名就是目录名。
我有一点编码经验(玩过一段时间的 arduinos 和 raspberry pi)所以我有一点知识,但从未对数据库做过任何事情。我也知道 html 和 css,以及一点点 javascript。
我将这些视为步骤:
- 从搜索字段中获取 OEM 编号。
- 在每个表格中搜索 OEM
- 如果匹配则返回零件号和目录
- 如果没有匹配显示'nothing found'
我有点明白了,但是我完全迷失了用一个查询搜索许多表....我不能用“一个”查询来做,因为我需要目录名(表名)也会被退回...简单的选择是制作一张 table ,但我想在将来更新它,这会变得非常困难。
我想我必须将表名设置为一个数组并遍历运行查询的数组,但我无法理解我将如何做到这一点???
你具体会怎么做?
我做错了吗?
我想我可以做很多查询,但我总是被告知重复代码通常意味着你做错了,所以我不想那样做。我要好好学习...
非常感谢
最佳答案
您走在正确的轨道上。你可能想在数据库世界中做一个叫做规范化的事情。这基本上意味着如果您有很多引用的东西,即 OEM、目录等,您可以将其提取到一个单独的表中,然后您可以引用它的 ID 而不是值,从而避免重复。
SQL 是为这种查询而构建的(如果您有兴趣,您应该查看基于集合的逻辑和维恩图,这将有助于理解 sql)。
所以你可能有一个看起来像这样的查询
SELECT
p.PartNumber,
p.Price,
c.Name
FROM
Parts p
INNER JOIN
OEM oem
ON
p.OEMId = oem.id
INNER JOIN
Catalog c
ON
c.Id = oem.CatalogId
WHERE
oem.slug = 'OEM123ABC'
关于php - 有了我的第一个项目想法,我走在正确的轨道上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24438418/