1

如果在数据库设计方面可以做得更好,我正在尝试锻炼。任何关于为什么它是错误/正确的建议将不胜感激。

我有 3 张桌子

Person
Car
Image

Cars 和 Persons 都可以有图像,所有对图像的引用都存储在图像表中。

Person has > Images
Car has > Images

图像表最终看起来像这样..

Image
ID   NAME    CAR_ID   PERSON_ ID
1    img1    10       NULL
2    img2    NUll     8

现在看来我的表中有很多 NULL,但我需要知道图像是用于汽车还是人。

那么,如果有的话,如何才能做得更好呢?

4

2 回答 2

3

如果您将图像的引用存储在 Car 和 Person 表中(如果存在一对一关系),您最终会得到更少的空值。如果你有多个图像,你最好有一个只存储关系的表。

该表如下所示:

DATATYPE    DATAID    IMAGEID
 1           10         1
 2            8         2

在第一列中,1 表示汽车,2 表示图像。

于 2012-05-13T20:10:02.647 回答
0

不需要图像表中的这两个字段。您可以查询 person 和 car 表以查看是否存在与图像 ID 匹配的条目。

但是,您可能会发现它们的存在既方便又高效。

于 2012-05-13T20:09:16.497 回答