Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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/2/apache-kafka/3.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_Database - Fatal编程技术网

媒体库MySql数据库设计

媒体库MySql数据库设计,mysql,sql,database,Mysql,Sql,Database,我正在建立一个数据库,它将保存不同媒体类型的各种媒体项目的信息。然后,可以将每个媒体项添加到媒体集合中,该集合可用于创建媒体滑块、多媒体资料等 下面是一个示例 media_types ----------- id code title 1 images Images 2 videos Videos 3 files Files gallery_items ------------- id gallery_id mediaTypeId

我正在建立一个数据库,它将保存不同媒体类型的各种媒体项目的信息。然后,可以将每个媒体项添加到媒体集合中,该集合可用于创建媒体滑块、多媒体资料等

下面是一个示例

media_types
-----------
id    code    title
1     images  Images
2     videos  Videos
3     files   Files

gallery_items
-------------
id    gallery_id    mediaTypeId    mediaId
1     1             1              2
2     1             3              1
3     1             2              3

images
------
id title        filename
1  X-Wing       xwing.png
2  Tie Fighter  tie.png
3  A-Wing       awing.jpg

videos
------
id title        filename
1  Hoth         iceplanet.wmv
2  Bespin       bespin.ogg
3  Tatooine     desert.mpeg

files
-----
id title                       filename
1  Death Star Plans            bothanx.pdf
2  Millenium Falcon Schematics yt1300.pdf
3  Rebel Alliance              manifesto.doc
我希望能够使用一条MySql语句选择特定库中的所有项目,但目前,我只能通过两个步骤来完成:

1) 从gallery_items表中选择具有特定库id的所有项目

2) 通过分析mediaTypeId,从相关媒体类型表中选择项目详细信息

在我给出的示例中,媒体类型表非常简单,共享相同的列,但实际上它们具有不同的列数和不同的列名。mediaId上的基本join语句不起作用,因为每个媒体类型表可能共享相同的id

我曾考虑过在所有媒体类型中使用唯一的mediaId,但这将在gallery_items表和我希望避免的媒体类型表之间强制执行绝对关系(并非媒体类型表中的所有项目最终都会在媒体集合中)。也许解决方案是创建另一个表,media_items,为每个表创建一个唯一的媒体id,然后在每个媒体类型表中使用?然而,我对不必要的表格扩散感到厌倦


任何关于如何最好地处理此设计的建议都将不胜感激。

IIWM:我会像你一样有一个“媒体类型”表。然后是另一个具有唯一ID、媒体类型、文件名等的媒体表。最后是一个具有库信息的表-唯一ID、媒体ID和任何其他库信息

为了使它更有用,您可以有一个“更改”表,用于跟踪每件媒体在画廊中的分配时间、接收日期、出售日期等。这将跟踪您收藏的每件作品的“寿命”