Логика для получения записи в моей базе данных?MySQL PHP - PullRequest
1 голос
/ 30 июля 2011

Я собираюсь начать раздел «Аудит данных» моего сайта.Что это значит?

Ну, в общем, пользователи могут просматривать и обновлять записи, которые они отправили в базу данных.

Это мой первый раз, и я предполагаю, что мне нужно будет использовать Joins, Selects?и т. д.

Поэтому мне было интересно, не могли бы вы помочь мне с логикой того, как я буду выполнять этот запрос.Я не хочу код, поскольку хочу сделать это сам, но логика - это то, что беспокоит меня.

Вот изображение моей схемы базы данных, показывающее отношения и т. Д .:

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

Вот то, что я подумал, как начать (псевдокод):

-Получить строку процедуры, где значение_процедуры = значение публикации с предыдущей страницы.

-Получить значения из этой строки в таблице процедур .

-Получить пациента строка, которая соответствует значению внешнего ключа в таблице процедур .

-Get отдел строка, которая соответствует значению внешнего ключа в таблице процедур.

-Get имя_процесса строка, которая соответствует внешнему ключузначение в таблице процедур.

-Получить строка дозировки , соответствующая значению внешнего ключа в таблице процедур.

Однако после этого я немного застрял в том, как я работаю с таблицами "многие ко многим" (n -> n), здесь происходит объединение?

А как насчет таблиц связывания, как мне их решать?

Если есть более простой способ сделать это, чем я думал, подскажитея:)

Ссылки на ресурсы или примеры будут высоко ценится.Заранее спасибо

Спасибо

Берегите себя!

1 Ответ

1 голос
/ 30 июля 2011

Это запрос для вашего псевдокода:

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), вы получите столько строк, сколько есть пар в вашем наборе результатов.

Если вам нужны дополнительные указания / примеры, вам нужно будет более четко понимать, что вы хотите получить, а что нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...