如何为具有多张照片的项目设计数据库架构

时间:2014-09-24 18:49:39

标签: mysql sql

我想设计一个数据库模式来保持项目持久性。 对于每件商品,我都有

  1. 标题
  2. 1张或多张照片。
  3. 我认为我的数据库架构需要

    1. 主键ID
    2. 标题字符串
    3. 我的问题是如何为每件商品保存多张照片?每件商品可以有1张或多张与之相关的照片。

      谢谢。

2 个答案:

答案 0 :(得分:1)

您可以创建第二个表格,用于存储照片以及它们所属项目的ID。第二个表中的多行(每张照片一行)可以引用同一个项目。您存储在照片表中的商品ID是items表中的外键。例如,假设您的items表包含以下三个项目:

 id | title
----+-------
  1 | House
  2 | Car
  3 | Tree

让我们说House和Tree每张只有一张照片,但Car有2张照片。您可以在照片表中存储以下内容:

 id | item_id | photo
----+---------+-----------
  1 |       1 | pic.jpg
  2 |       2 | front.jpg
  3 |       2 | side.jpg
  4 |       3 | green.jpg

在上表中,您可以看到pic.jpg属于第一个项目(House),front.jpgside.jpg属于第二个项目(Car)和{{1} }属于第三项(树)。

如果您想查找第二个项目的标题和照片,可以运行以下查询:

green.jpg

答案 1 :(得分:0)

这是一个关系型数据库吗?如果是的话......

如果照片只能有一个父母,那么您只需要一张表格,用于拥有父表格外键的照片。

如果照片可以包含多个父级,则您需要使用多对多表将项目表中的记录链接到照片表中的记录。多对多表将为项目和照片主键提供外键。