我有一张桌子可以注册我的所有图片,例如客户徽标,用户照片和促销图片。问题是一个促销可能有多个图像。由于我将此表用于除促销之外的其他图像,因此我无法在其中使用外键。所以我怀疑该怎么做,在促销和图像之间创建一个中间表,或者只为促销图像创建一个表。
谢谢
答案 0 :(得分:2)
如果1张图片可以在多个促销中,而且一张促销可以包含多张图片,则可以通过3张表创建关系 N:N :
image:
imageID INT,
image YOUR_TYPE_OF_IMAGE,
...
promotion:
promotionID INT,
description VARCHAR(255),
name VARCHAR(255),
...
image_and_promotion:
imageID INT,
promotionID INT
您可以添加第3张表的检查:
UNIQUE(imageID, promotionID)
答案 1 :(得分:1)
您应该在促销和图片之间创建一个中间表
答案 2 :(得分:0)
如果图像只能与一个促销相关,则为具有促销表的外键的图像创建一个表。因此,每个图像都可以参考促销。 这将是1:n
如果图像可以与多个促销相关,您还应该为图像创建一个表,还可以为关系promotion_images创建一个表。 这将是一个n:n关系。