我需要實現一個如下所示的標記系統: -分組標記的數據庫實現
每個用戶都可以基於他的教育進行標記。 (標籤是:小學,中學,高中),這些標籤屬於「教育」的保護範圍。類似地,用戶也可能被標註在他的興趣上(板球,足球,搖滾音樂,流行音樂......)板球和足球來自「體育」,搖滾音樂和流行音樂來自「音樂」。
目前的設計是:
User Userid TagID TagName UserId TagID
=========== ============= ============
1 User1 1 Pop 1 1
2 user2 2 Rock 1 2
3 Techno 1 5
4 Cricket 1 6
5 Football 2 1
6 Primary Scl. 2 4
7 Secondary scl 2 7
這3形式的主要表,讓許多用戶和標籤之間的多對多關係。
二次表是:
(Music) (Sports) (Education)
TagID MusicID MusicType TagID SportID Sport TagID EducationID Education
======================= ==================== ============================
1 1 Pop Music 4 1 Cricket 6 1 Primary
2 2 Rock Music 5 2 Football 7 2 Secondary
3 3 Techno Music
在這種結構的問題是,從表TagTable一個標籤識別可以通過音樂和體育引用如果不注意taken.There的是,流行音樂和板球機會如果開發者沒有采取必要的措施,將會引用相同的TagID。
如何避免多次引用的可能性?
注意:輔助表已用於檢查標籤是否屬於同一傘。這是分組標記的功能是必要的。
一些標籤需要有限制。就像用戶可以有主要或次要的,其他標籤如體育或音樂可以是「多」。我知道會有複雜的事情發生,如果你能幫上忙的話,會很好。 – Rocode 2014-12-22 04:35:01