这个项目最好的SQL方案是什么?

时间:2010-03-05 20:49:20

标签: php sql

我想制作一个让人们提交照片/视频/声音的php应用

现在,上传的所有记录都将以这种方式添加到带有文件信息的SQL数据库中:

Photos_table : File_Name | Picture_Type | Picture_Width | Picture_height

Videos_table : File_Name | Duration | Codec

Sounds_table : File_Name | Bitrate | Duration | Codec

该应用程序将显示所有最近的所有项目。像以前的方案那样做好,或者像这样在一个表中创建所有信息:

File_Name | Picture_Type | Picture_Width | Picture_height | Duration | Codec | Bitrate

我的意思是收集信息的最快方式是什么,我认为第一个方案比上一个方案更有条理。

由于

4 个答案:

答案 0 :(得分:10)

绝对不是全部。如果您要上传媒体,那么我会创建一个包含所有媒体的表格:

  

Media_table:ID | MediaPath | ETC

     

Photos_table:MediaID | Picture_Type   | Picture_Width | Picture_height

     

Videos_table:MediaID |持续时间|   编解码器

     

Sounds_table:MediaID |比特率|   持续时间|编解码器

查看database normalization

答案 1 :(得分:3)

不会有很大的性能差异。但是,使用第二种方法会对数据库进行非规范化,这被认为是不好的做法。

答案 2 :(得分:1)

使用第一个方案 - 因为每个表代表具有不同信息的不同类型。

如果你有第二个方案,你的表中最终会有很多空值。

大多数数据库专业人员会选择第一个,因为它更多normalized

答案 3 :(得分:0)

虽然durilai的答案是最好的,但如果你不同意它,你也可以保留三个单独的表格,并以两种方式之一结合他们的结果:

  • 使用UNION进行1次查询。
  • 3个查询,之后与PHP合并。