得到了我的第一个项目想法,我是在正确的轨道上吗?

时间:2014-06-26 19:15:01

标签: php mysql project

我14岁,我正在自学PHP。我打算为爸爸割草机修理店建一个零件数据库。

每个割草机都有OEM'数字,但OEM零件价格昂贵。我父亲有供应商制造与这些OEM零件兼容的零件,在目录的背面有OEM图表到目录零件编号

我希望能够将OEM编号输入搜索字段,然后显示每个兼容的目录编号以及来自哪个目录...我希望这很清楚。

现在我已经从目录中提取了数据,并且有6个这样的数据库表

id    |    oem     |     partnumber
------+------------+----------------------
      |            |

表名是目录名。

我有一点编码经验(与arduinos和raspberry pi一起玩了一段时间)所以我有一点知识,但从未对数据库做过任何事情。我也知道html和css,还有一点点javascript。

我将这些视为以下步骤:

  1. 从搜索字段中获取OEM编号。
  2. 在每个表中搜索OEM
  3. 如果匹配,则返回部件号和目录
  4. 如果没有匹配显示'找不到任何内容'
  5. 我有点喜欢它,但我完全迷失了用1个查询搜索许多表格....我无法用一个'一个'查询,因为我还需要返回目录名称(表名)...简单的选项是制作1个表,但我想在将来更新它,这将使它变得非常困难。

    我想我必须将表名设置为一个数组并循环遍历运行查询的数组,但我无法理解我将如何做到这一点???

    你究竟会怎么做?

    我做错了吗?

    我想我可以做很多查询,但我总是被告知重复代码通常意味着你做错了,所以我不想这样做。我想要正确学习......

    非常感谢

2 个答案:

答案 0 :(得分:0)

你走在正确的轨道上。您可能希望在数据库世界中执行称为规范化的操作。它基本上意味着如果你有一些引用很多的东西,例如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'

答案 1 :(得分:0)

你做错了。将目录名称放在表格中,如果它是全部的话。然后你可以做一个SQL查询,如:

SELECT part_number FROM table_name WHERE catalog='catalog_name' AND oem='search_term';

确保设置适当的索引。