如果在数据库设计方面可以做得更好,我正在尝试锻炼。任何关于为什么它错了/正确的建议都会受到赞赏。
我有3张桌子
Person
Car
Image
汽车和人员都可以拥有图像所有对图像的引用都存储在图像表中。
Person has > Images
Car has > Images
图像表最终看起来像这样..
Image
ID NAME CAR_ID PERSON_ ID
1 img1 10 NULL
2 img2 NUll 8
现在看来我的表中有很多NULL,但我需要知道图像是用于汽车还是人。
那么如果可以做得更好呢?
答案 0 :(得分:3)
如果在Car和Person表中存储对图像的引用(如果存在一对一关系),则最终会有更少的空值。如果你有多个图像,你最好有一个只存储关系的表。
此表格如下所示:
DATATYPE DATAID IMAGEID
1 10 1
2 8 2
在第一列中,1表示汽车,2表示图像。
答案 1 :(得分:0)
你不需要图像表中的那两个字段。您可以查询人员和汽车表,以查看是否存在与图像ID匹配的条目。
但是,你可能会发现它们的存在是方便和高效的。