2012-04-12 39 views
1

我正在爲使用php,mysql和javascript的母親製作一個半簡單的web應用程序。mysql/php網頁中的用戶訪問管理

她是一位老師,這將允許她管理她的課程計劃的各個組成部分。 對於每個組件都有一個表,對於每個可以包含另一個組件的組件,都有另一個表來保存關係。 (該表類型有兩列,每列都有相關表的外鍵)

我差不多完成了,但她現在想讓她的朋友使用它,我並不在乎SQL注入過多,但我想實現用戶控制,以便只有創建組件的用戶才能查看和編輯該組件。

我也希望他們能夠製作公共組件,以便用戶可以將組件複製到他們自己的數據集中。

我的問題來實現用戶控制,我應該讓每個用戶,有自己的數據庫瞬間,還是應該每個表都有對公共/私人身份擁有者列和列,或者是沒有辦法,我都沒有想到另一種選擇的。

我看到的一個問題是,在創建組件之間的關係時需要額外的mysql查詢,因爲我需要檢查兩個組件用戶標記是否與當前用戶匹配。

任何意見/建議是有益的

更新使用的唯一的人/訪問,這將是其他教師,將要開發自己的教案

+0

她的朋友們,你的意思是說他們會成爲老師和他們自己的課程計劃,或者是會查看她的用戶嗎?在關係方面有很大的不同。 – tcole 2012-04-12 02:50:46

+0

只有其他老師會看到這個,他們會用它來開發/組織他們的課程計劃 – 2012-04-12 03:04:00

回答

0

我一定會在同一個數據庫內實現這個。在這種情況下,爲每個用戶設置不同的數據庫並不是一個好的解決方案。例如,想想如果每個用戶的數據位於單獨的數據庫中,您將如何構建搜索功能將會衝突UID。這將是一場噩夢。單獨的數據庫在每個數據庫爲單獨的應用程序提供服務的情況下工作,並且不同數據庫中的數據之間的關係恰好爲零。

這樣就帶你瞭解如何實現它。這將取決於你的模型。每個課程計劃是否只有一個,例如,只有一個擁有者?如果是這樣,那麼將該信息添加到組件表中可能會有效。否則,您可能需要一個單獨的表來定義所有權,從而訪問不同的組件。無論哪種方式,我都會確保訪問邏輯已解耦並封裝在您的應用程序中,以確保您可以在將來進行更改。想象一下,例如,你從一個簡單的單一所有者模型開始,但是網站的增長和增長很快就會有一羣人需要對組件進行所有權/編輯訪問。

+0

我最終這樣做了,謝謝你的反饋! – 2012-04-15 21:53:46