php - 在我的数据库中检索记录的逻辑? MySQL PHP

标签 php mysql activerecord

我即将开始我网站的“数据审核”部分。这意味着什么?

基本上用户可以查看和更新​​他们提交给数据库的记录。

这是我第一次这样做,我猜我需要使用连接、选择?等等

所以我想知道您是否可以帮助我了解我将如何处理此查询的逻辑。我不想要代码,因为我想自己做,但逻辑是困扰我的地方。

这是我的数据库模式的图像,显​​示了关系等:

enter image description here http://i.imgur.com/Dju0G.png

这是我想到的如何开始(伪代码):

-Get procedure row where procedure_id = posted value from previous page.

-Retrieve values from that row in procedure table.

-Get patient row that matches the foreign key value in procedure table.

-Get department row that matches the foreign key value in procedure table.

-Get procedure_name row that matches the foreign key value in procedure table.

-Get dosage row that matches the foreign key value in procedure table.

然而,在这一点之后,我对如何处理多对多 (n--> n) 关系表有点困惑,这是加入连接的地方吗?

我的链接表如何处理它们?

如果有比我想象的更简单的方法,请告诉我:)

资源或示例的链接将不胜感激。提前致谢

谢谢

保重!

最佳答案

这是对你的伪代码的查询:

SELECT
  procedure.*,
  patient.*,
  department.*,
  procedure_name.*,
  dosage.*
FROM
  procedure
INNER JOIN
  patient
ON
  patient.patient_id = procedure.patient_id
INNER JOIN
  department
ON
  department.department_id = procedure.department_id
INNER JOIN
  procedure_name
ON
  procedure_name.procedure_name_id = procedure.name_id
INNER JOIN
  dosage
ON
  dosage.dosage_id = procedure.dosage_id
WHERE
  procedure.procedure_id = ?

您可以以完全相同的方式加入任何其他表格。如果您想要返回行,即使您要加入的表没有与查询其余部分的行匹配的行,请使用 LEFT OUTER JOIN 而不是 INNER JOIN。如果有多行与当前行 (1:N/N:M) 匹配,您将获得与结果集中的对一样多的行。

如果您需要额外的指导/示例,您必须更加清楚您想要检索的内容以及您不理解的内容。

关于php - 在我的数据库中检索记录的逻辑? MySQL PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6879182/

相关文章:

PHP 不在 MySQL 查询后重定向

mysql - 在mysql中插入时格式化日期

ruby - 如何在我的数据库中存储哈希值?

Mysql 列重复

ruby-on-rails - 奇怪的迁移错误

php - Yii2 事件记录中按查询等效的 MySQL 复杂顺序

PHP - 在数组中返回数组的值

php - MySQL 上的多个 INSERT/UPDATE

php - MySql没有输出

php - FuelPHP:多对多连接表中可能有额外的列吗?