2011-07-29 56 views
1

我即將開始我的網站「數據審計」部分。那是什麼意思?用於檢索我的數據庫中的記錄的邏輯? MySQL PHP

基本上,用戶基本上可以查看和更新​​他們提交給數據庫的記錄。

這是我第一次做這個,我猜我需要使用Joins,Selects?等

所以我想知道如果你能幫助我的邏輯我將如何通過此查詢工作。我不想要代碼,因爲我自己想要這樣做,但邏輯就是困擾着我。

這裏是我的數據庫模式的顯示關係等的圖像:

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

這是我曾經想過如何開始(僞):

- 獲取程序行其中procedure_id =從之前的 頁面發佈的值。

- 在程序表中從該行中檢索值。

-Get 患者行與程序表中的外鍵值匹配。

-Get 部門程序表中的外鍵值匹配的行。

-Get procedure_name行與過程表中的外鍵值匹配。

-Get 劑量行與過程表中的外鍵值匹配。

但是在這之後,我被困在一個位我如何處理多到許多(N - > n)的關係表,這是一個地方參加拉斯維加斯?

我的鏈接表怎麼處理它們?

如果這樣做,比我還以爲你能告訴我:)

資源的鏈接或例子更簡單的方法,將不勝感激。在此先感謝

謝謝

保重!

+0

/離線題目:你用什麼軟件來可視化你的數據庫? –

+0

sqlyog professional – sqlmole

回答

1

這是僞代碼查詢:

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),您將獲得與結果集中的成對相同數量的行。

如果您需要其他指導/示例,您必須更清楚您想要檢索的內容以及您不瞭解的內容。

+0

謝謝,對於select語句,它如何知道過程表中要查看的哪一行是查詢中前面指定的行? – sqlmole

+0

對不起,我忘了你想要一個特定的程序。添加到查詢結尾WHERE procedure.procedure_id =#'。 –

相關問題