我正在创建一个mysql支持的在线相册,到目前为止,我有3个带有模式的表:
照片:
imageID(主键)
标题
相册标题
图像url
拍摄日期
相册:
相册标题
创建日期
修改日期
唱片集ID(主键)
用户:
用户标识(主键)
用户名
电子邮件
我知道,为了允许用户在多个相册上放置照片,我需要创建第四个表,而不是在albumID
表中放置Photos
(这不允许照片在多个相册上)。
我应该改变我的模式(如果有的话)和我应该把什么放在我的第四个表,以允许一个图像在多个相册?
PS我正在使用phpmyadmin
创建我的数据库。
最佳答案
Albums_Photos: album_id, image_id
尽量保持你的名字一致。。。也就是说,你有imageID和album ID。
就我个人而言,当ID与表本身相关时,我只使用ID。
所以我想要这样的东西:Photos: id (PK), caption, image_url, date_taken
Albums: id (PK), album_title, date_created, date_modified
Users: id (PK), username, email
Albums_Photos: album_id (FK albums.id), photo_id (FK photos.id)
使用Albums_Photos
表,可以为主键添加id
列,也可以使用album_id
和photo_id
创建复合主键。
你可能也想把album_title
从Photos
中去掉。
关于php - 多对多表关系,用于允许照片在mysql图像库中的多个相册中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29083427/