我有一個包含幾個表的數據庫:文件和用戶。這種關係是多對多的,所以我也有一個名爲users_files_ref的表,它持有上述兩個表的外鍵。我應該如何管理我的多對多關係?
這裏的每個表的模式:
文件 - >的file_id,FILE_NAME
用戶 - > USER_ID,USER_NAME
users_files_ref - > user_file_ref_id,USER_ID,FILE_ID
我使用Codeigniter來構建一個文件宿主應用程序,並且我正在添加使用戶能夠上傳文件的功能。這是我遇到我的問題的地方。
一旦我將文件添加到文件表中,我將需要該新文件的ID來更新users_files_ref表。現在我將記錄添加到文件表中,然後我想象我會運行一個查詢來獲取添加的最後一個文件,以便我可以獲取該ID,然後使用該ID插入新的users_files_ref記錄。
我知道這將在小範圍內工作,但我想有一個更好的方式來管理這些記錄,特別是在交通繁忙的情況下。
我是新來的關係型數據庫的東西,但已經出現了PHP一段時間,所以請我在這裏承擔:-)
我有主鍵和外鍵設置正確的文件,用戶和users_files_ref表,我只是想知道如何管理這種情況下添加文件記錄?
感謝您提供的任何幫助,非常感謝。
-Wes
夏天,我在查看CI文檔時忽略了這一點,並沒有注意到它實際上抓住了最後一個插入(d'oh!):] 這看起來像是一個完美的解決方案,因爲不需要存儲過程學習,但是我想知道存儲過程是否可以在許多用戶同時上傳的時候更好地管理這些插入的完整性。你有沒有遇到過這種特殊方法的麻煩?感謝您爲我的注意力帶來這個小寶石! – wes 2010-04-04 23:32:45
我敢打賭,Ellis實驗室的人員太好了,無法公開帶有明顯併發問題的數據庫方法。或者,您可以隨時查看源代碼以確保自己的安全。我從來沒有遇到過問題。 :) – Summer 2010-04-06 19:03:42