看板 Database 關於我們 聯絡資訊
各位好,因為目前資料庫內有作者資料表、書籍資料表、論文資料表 論文或書籍都有可能有多個作者,所以要多一張對應表表示作者與作品關係 id |作者 | ... id |論文 | ... id |書籍 | ... ---------------- ---------------- ---------------- 1 |A | ... 1 |P | ... 1 |X | ... 2 |B | ... 2 |Q | ... 2 |Y | ... 3 |C | ... 3 |R | ... 3 |Z | ... id |作者id |作品id |作品類型 ----------------------------- 1 |1 |1 |書籍--------->表示X這本書作者有A 2 |3 |1 |書籍--------->表示X這本書作者還有C 3 |2 |3 |論文--------->表示R文章是B寫的 4 |2 |2 |論文--------->表示Q文章也是B寫的 個人是認為這樣已經符合正規化,可是要查一個作者的所有作品時 變成要用union把論文跟書籍分開來查詢,SQL的句子變得很長 而且事實上作品有非常多種,感覺union的方式很麻煩 想說有沒有辦法把primary key直接內含他的類型而且匯入時會自動增加 目前在postgreSQL裡看到的SERIAL只會是自動增加的整數而已 如果可以轉成p1,p2...和b1,b2...這樣應該可以少一個欄位 (但是查詢上好像還是只能用union來查詢?) 想請教各位有沒有可以調整PK格式讓匯入方便的方法? 或者是查詢上可以比較簡便的方式? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.63.202
benqm300:你的SQL怎麼下的? 看起來可以不用UNION 01/17 00:03
benqm300:假設你要查ID=2的作者的作品,可以用CASE區分作品類型, 01/17 00:08
benqm300:書籍就查A,論文就查B,但是我不確定這樣是不是你要的.. 01/17 00:09