Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何为包含多张照片的项目设计数据库架构_Mysql_Sql - Fatal编程技术网

Mysql 如何为包含多张照片的项目设计数据库架构

Mysql 如何为包含多张照片的项目设计数据库架构,mysql,sql,Mysql,Sql,我想设计一个数据库模式来保持项目的持久性。 对于每一项,我都有 头衔 一张或多张照片 我认为我的数据库模式需要 主键的id 标题字符串 我的问题是如何为每个项目保留多张照片?每个项目可以有一张或多张与之关联的照片 谢谢。您创建了第二个表,用于存储照片以及照片所属项目的id。第二个表中的多行(每张照片一行)可以引用同一项。存储在照片表中的项目id是项目表中的外键。例如,假设您的items表包含以下三项: id | title ----+------- 1 | House 2 | Car

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

  • 头衔
  • 一张或多张照片
  • 我认为我的数据库模式需要

  • 主键的id
  • 标题字符串
  • 我的问题是如何为每个项目保留多张照片?每个项目可以有一张或多张与之关联的照片


    谢谢。

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

     id | title
    ----+-------
      1 | House
      2 | Car
      3 | Tree
    
    假设房子和树都只有一张照片,但汽车有两张照片。您可以在照片表中存储以下内容:

     id | item_id | photo
    ----+---------+-----------
      1 |       1 | pic.jpg
      2 |       2 | front.jpg
      3 |       2 | side.jpg
      4 |       3 | green.jpg
    
    在上表中,您可以看到
    pic.jpg
    属于第一项(房屋),
    front.jpg
    side.jpg
    属于第二项(汽车),而
    green.jpg
    属于第三项(树)

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

    SELECT items.title, photos.photo
    FROM items JOIN photos ON items.id = photos.item_id
    WHERE items.id = 2
    

    这是关系数据库吗?如果是

    如果照片只能有一个父表,那么您只需要为照片创建一个表,该表具有父表的外键

    如果照片可以有多个父项,则需要使用多对多表将项目表中的记录链接到照片表中的记录。多对多表中的项目主键和照片主键都有外键