作者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
1F:→ benqm300:你的SQL怎麽下的? 看起来可以不用UNION 01/17 00:03
2F:→ benqm300:假设你要查ID=2的作者的作品,可以用CASE区分作品类型, 01/17 00:08
3F:→ benqm300:书籍就查A,论文就查B,但是我不确定这样是不是你要的.. 01/17 00:09