多对多 table 关系,允许一张照片出现在 mysql 图片库的多个相册中
many to many table relationship for allowing a photo to be on multiple albums in a mysql image gallery
我正在创建一个 mysql 强大的在线相册,到目前为止我有 3 个 table 具有架构:
照片:
- imageID(主键)
- 标题
- album_title
- image_url
- date_taken
专辑:
- album_title
- date_created
- date_modified
- album_ID(主键)
用户:
- 用户ID(主键)
- 用户名
- 电子邮件
我知道为了允许用户将一张照片放在多个相册中,我需要创建第四个 table 而不是将 albumID
放在 Photos
table(不允许一张照片出现在多个相册中)。
我应该如何更改我的模式(如果有的话)以及我应该在我的第四个 table 上放置什么以允许单个图像出现在多个相册中?
PS 我正在使用 phpmyadmin
创建我的数据库。
Albums_Photos: album_id, image_id
尽量保持命名一致...即您有 imageID 和 album_ID。
就个人而言,当 ID 与 table 本身相关时,我只使用 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
table 您可以为主键添加一个 id
列,或者您可以使用 album_id
和 photo_id
.
您可能也想从 Photos
中取出 album_title
。
我正在创建一个 mysql 强大的在线相册,到目前为止我有 3 个 table 具有架构:
照片:
- imageID(主键)
- 标题
- album_title
- image_url
- date_taken
专辑:
- album_title
- date_created
- date_modified
- album_ID(主键)
用户:
- 用户ID(主键)
- 用户名
- 电子邮件
我知道为了允许用户将一张照片放在多个相册中,我需要创建第四个 table 而不是将 albumID
放在 Photos
table(不允许一张照片出现在多个相册中)。
我应该如何更改我的模式(如果有的话)以及我应该在我的第四个 table 上放置什么以允许单个图像出现在多个相册中?
PS 我正在使用 phpmyadmin
创建我的数据库。
Albums_Photos: album_id, image_id
尽量保持命名一致...即您有 imageID 和 album_ID。
就个人而言,当 ID 与 table 本身相关时,我只使用 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
table 您可以为主键添加一个 id
列,或者您可以使用 album_id
和 photo_id
.
您可能也想从 Photos
中取出 album_title
。