【问题标题】:many to many table relationship for allowing a photo to be on multiple albums in a mysql image gallery多对多表关系,允许一张照片出现在 mysql 图片库中的多个相册中
【发布时间】:2015-05-18 22:58:06
【问题描述】:
我正在创建一个 mysql 驱动的在线相册,到目前为止我有 3 个带有模式的表:
照片:
-
imageID(主键)
- 标题
- 专辑标题
- image_url
- 拍摄日期
专辑:
- 专辑标题
- 创建日期
- 日期修改
-
album_ID(主键)
用户:
我知道,为了允许用户将照片放在多个相册中,我需要创建第四个表,而不是将 albumID 放在 Photos 表中(这不允许放置照片多张专辑)。
我应该对我的架构进行哪些更改(如果有的话),我应该在第四张桌子上放什么以允许单个图像出现在多个相册中?
PS 我正在使用phpmyadmin 创建我的数据库。
【问题讨论】:
标签:
php
mysql
phpmyadmin
photo-gallery
【解决方案1】:
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 创建复合主键。
您可能也想从Photos 中删除album_title。