作者razer (還是一個人)
看板Database
標題[SQL ] primary key依格式自動生成
時間Tue Nov 26 16:52:57 2013
各位好,因為目前資料庫內有作者資料表、書籍資料表、論文資料表
論文或書籍都有可能有多個作者,所以要多一張對應表表示作者與作品關係
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