我正在構建一個帖子可以有多個標籤的典型帖子和標籤應用程序。我堅持設置數據庫模式。我至今:具有多個標籤的帖子的數據庫模式
帖子:
POST_ID PRIMARY KEY
POST_TITLE
POST_BODY
POST_DATE
POST_USERID
標籤:
TAG_ID PRIMARY KEY
TAG_TAGNAME
PT:
PT_ID
PT_POSTID
PT_TAGID
當用戶提交一則訊息,我插入表單數據進入後表。下一步我循環瀏覽用戶提供的標記名,看看它們是否在TAG_TAGNAME字段中。如果有匹配,請抓住ID並將其插入PT表格中。 ELSE將名稱插入到標記表中,並獲取該標識並將其插入到PT表中。兩者都與POST表插入中生成的postid一起使用。
最後,我有一個名爲PTVIEW視圖與下面的模式:
SELECT *
FROM dbo.PT
JOIN後
ON PT_PostID = dbo.Post.POST_ID
JOIN標籤
ON PT_TagID = tag.TAG_ID
下面是select * from PTVIEW的示例結果
問題是我無法獲得獨特帖子及其標籤的視圖。
我正在使用MSSQL,所以我沒有內置到mySQL中的Group_concat函數。
我無法構建初始頁面,該頁面將顯示每個帖子及其相關標籤,如在主頁上使用的stackoverflow。我在PTVIEW中做了什麼錯誤?
如果我用的是第一選擇,我能想到的列出職位及標籤的頂部#的唯一方法是使用一個嵌套循環。抓取每個postID,然後選擇另一個來獲取標記名。我錯了嗎?我覺得如果有很多帖子,這也會成爲服務器上的負載。 – jwimmer