我希望你们都没事,
我之前已经读过,例如我有两张桌子(汽车,颜色),每辆车有一种颜色,我可以用一个字段制作颜色表"颜色" (char主键)及其值应为("绿色","蓝色",...)
当我查询汽车表时,我将检索颜色(颜色名称不是代理id)而无需加入颜色表!
我的问题是我可以使用相同的想法与数据库有两个表(书籍,作者)
使用作者表中的作者姓名作为主键,因此当我查询书籍表时,我检索作者姓名而不加入两个表...鉴于我的书籍和作者数量非常有限(少于1000本书)
谢谢。
答案 0 :(得分:1)
首先,您提到的(汽车,颜色)场景并不是一个设计良好的数据库。请考虑以下情况:
Id Car Color(PK)
-- --- -----
1 Suzuki Black
2 Mazda Green
3 Audi Black
主键说:它应该是唯一的非空标识符。
现在,Color是您的主键吗?
同样考虑你的书,作者
Id Author(PK) Book
-- ------ -----
1 J.K.Rowling Harry potter
2 Dan Brown Inferno
3 Rudyard Kipling Jungle book
4 Dan Brown The da vinci code
作者不是唯一的。
您的设计应该是:
Author
Id Name
1 J.K.Rowling
2 Dan Brown
3 Rudyard Kipling
Books
Id Name
1 Harry potter
2 Inferno
3 Jungle book
4 The da vinci code
Mapped_table
Id Author_Id Book_Id
1 1 1
2 2 2
3 2 4
4 3 3