Mysql 将一个表中的动态条目数存储到另一个表中的单行
我有一个名为users的表,其中包含以下列:Mysql 将一个表中的动态条目数存储到另一个表中的单行,mysql,database,database-design,Mysql,Database,Database Design,我有一个名为users的表,其中包含以下列: | id | name | 然后是另一个名为images的表,如下所示: | id | fileName | 将动态数量的图像行分配给多个用户行的最佳方法是什么。您需要将图像添加到图像表中。例如,将图像表更改为有三列: | id | fileName | userID | 此userID必须是users表中已经存在的id值之一,否则此列将毫无意义。此列将指向users表,并将每个图像分配给特定的用户。因为一个用户可以有很多画,我们称之为一对多关
| id | name |
然后是另一个名为images的表,如下所示:
| id | fileName |
将动态数量的图像行分配给多个用户行的最佳方法是什么。您需要将图像添加到图像表中。例如,将图像表更改为有三列:
| 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);
第一行将添加列,而第二行对其进行约束。该约束确保添加到images表的新行必须具有有效的用户标识。如果您尝试添加一个用户ID不存在的行,您将得到一个错误,这是理所当然的,因为图像不应该属于虚构的用户
这还会将所有现有图像行的userID列设置为0。您可能希望稍后更改此选项,但这取决于您的具体情况