[英]Best practice MySQL UPDATE/INSERT
免責聲明:我沒有設計這些表,並且知道它們不是存儲這些數據的最佳方法。 我需要有關處理這種情況的最佳方法的建議。
我有兩個MySQL表:
`students`
id int; primary, unique
prof1_id varchar
prof2_id varchar
prof3_id varchar
`professors`
id int; primary, unique, auto-increment
username varchar
fname varchar
fname varchar
students_id int
comment text
教授的用戶名可以在“ students
表的后三列中的任何一列中。 教授將需要為在students
表中的行中的每個學生提供一條評論。
作為該數據庫前端的應用程序希望在professors
表中再增加兩列:student_id和comment。 由於每個學生的行中可能有3位教授,因此只要列出了多個學生,就需要向professors
添加新行。 這意味着, professors
ID字段將需要為每個新學生評論自動遞增。
用MySQL查詢完成此數據傳輸的最佳方法是什么? 我嘗試結合UPDATE來查看UPDATE,但是我不確定甚至沒有有效的方法來執行此操作。 另外,由於多個行具有相同的ID,我是否需要為professors
創建另一個主鍵?
我懷疑使用VIEW可能是實現此目的的最佳方法,但是前端的應用程序希望信息存儲在professors
表中。
我正在考慮的另一件事是,我可以通過連接兩個表來創建一個新表,並具有一個兩列主鍵,students.id,professor.id。
謝謝!
另外,由於多個行具有相同的ID,我是否需要為教授創建另一個主鍵?
是。 這是個好主意。
我編寫了簡單的查詢,將第一個表中的數據合並為2列。 這不是完整的答案,但可以為您提供很多幫助:
SELECT id, prof1id as profid
UNION
SELECT id, prof2id
UNION
SELECT id, prof3id
UNION;
您可以將其用於查看,插入,但我不熟悉specyfic MySQL語法,我也不想誤導您。 如果有效,請提供反饋。
“ UNION”刪除重復的行,您可能需要使用“ UNION ALL”來保留重復的內容(例如2或3個Professors列中的重復值)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.