是否可以使用一个表来存储针对多个表的图像?或者最好有一个三个单独的表?只有Office可以有两个图像。
模式
Inspectors
- InspectorID(PK),InspectorName
Offices
- OfficeID(PK),OfficeName
Staff
- StaffID(PK),StaffName 新Photo
表(以不同表格的二进制形式存储图像)
Photos - PhotoID (PK), PhotoData, InspectorID(FK), OfficeID(FK), StaffID (FK)
新架构
Inspectors
- InspectorID(PK),InspectorName, PhotoID(FK)
or
Inspectors
- InspectorID(PK),InspectorName, PhotoID_1(FK), PhotoID_2(FK)
Offices
- OfficeID(PK),OfficeName, PhotoID(FK) Staff
- StaffID(PK),StaffName, PhotoID(FK) 答案 0 :(得分:1)
没关系,但你不需要在Photo表和其他表中使用FK。只需将PhotoID FK放入其他三个表中即可。
如果您只需担心办公室的第二张照片,那么在办公室桌面上添加第二张PhotoID FK就可以了。
如果您想要一个更具伸缩性的解决方案,并且/或者如果一张照片可以用于多个其他实体,那么bridge table可能会有序。
或者如果一张照片只能属于一个实体,那么你在相反方向上有一对多,你可以将FK列放在Photo表中,并将它们排除在其他实体表之外。您还可以添加"订单"列表到照片表,以指定照片为实体显示的顺序,或前端可能使用该信息的其他任何内容。