簡體   English   中英

最佳實踐MySQL UPDATE / INSERT

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM