场景:服务器上有许多音频文件,同时,对应于每一个文件有大约二十个属性信息,在客户端,用户通过组合属性信息,选择不同的音频文件并播放相应的音频文件。
    问题:这些音频文件和属性信息在服务器端,把他放在数据库中还是以文件形式放在某文件夹下面?我觉得放在数据库里面,c/s客户端代码好写一点,查询数据库就能根据属性信息得到相应的音频文件在客户端播放,但是,不知道会不会把大字段放在数据库里性能会很差,而且网络传输过程中会不会出错;如果采用文件夹下面存放,我感觉在客户端按照属性称查找服务器上的相应文件,在传输,编程会很麻烦。
  请有设计经验的兄弟,给指点一下,最好能说得详细一点,谢谢!

解决方案 »

  1.   

    在数据库放属性信息,文件放在外边,用socket传输文件
      

  2.   

    我估计音频文件都比较大,建议不要存放在数据库,否则文件一多,速度会很慢。
    我之前做过类似这种项目,不过是图像文件,但是有几千G的容量。
    数据库存储文件的路径和文件名,需要使用时,利用TCP 或者 UDP传输如果是局域网内,网络稳定,使用TCP还是比较方便的。
    传送你可以使用INDY 的IDTCPSERVER/IDTCPCLIENT组件 。很简单,可以看一下INDY的SAMPLE