我有一个名为users
的表,其中包含以下列:
| id | name |
然后另一个名为images
的表格如下:
| id | fileName |
将动态数量的图像行分配给多个用户行的最佳方法是什么。
答案 0 :(得分:0)
您需要在图片表格中添加foreign key。例如,将图像表更改为三列:
| id | fileName | userID |
此userID必须是users表中已存在的id值之一,否则此列将毫无意义。此列将指向users表,并基本上将每个图像分配给特定用户。由于一个用户可以拥有许多画作,我们称之为一对多的关系。
如果您已经创建了表,则可以尝试运行以下查询:
ALTER TABLE images ADD userID INT NOT NULL DEFAULT 0;
ALTER TABLE images ADD CONSTRAINT fk_user FOREIGN KEY (userID) REFERENCES users(id);
第一行将添加列,而第二行则为其添加约束。约束确保添加到图像表必须的新行具有有效的userID。如果您尝试添加一个不存在的用户ID的行,您将收到错误(这是正确的,因为图像不应属于虚构用户)。
这也会将所有现有图像行的userID列设置为0.您可能希望稍后更改此值,但这取决于您的具体情况。