之前我一直采用的是存路径的方法,但后来发现了一个问题,如果那个在磁盘的相片图片被删掉了,那就没了。
而存在数据库的二进制,显然没这个问题。
所以,应该还是用存在数据库中比较好吧?可是,存在数据库中,也有个问题,那就是,要显示照片时,要读数据库二进制流,生成图片,才可以显示,显然,效率方面有所降低。所以,感觉挺矛盾的。不知各位数据库高人,要如何认为呢?那种方式更好呢?或者,你们公司的项目的,用那种方式呢?

解决方案 »

  1.   

    1、一般来说是存储路径。
    2、如果非要存入数据库,则参考:
    ntext、text 和 image
    用于存储大型非 Unicode 字符、Unicode 字符及二进制数据的固定长度和可变长度数据类型。Unicode 数据使用 UNICODE UCS-2 字符集。ntext可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-92 中的同义词是 national text。text服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。image可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间。 注释
    下面的函数和语句可以与 ntext、text 或 image 数据一起使用。函数 语句 
    DATALENGTH  READTEXT 
    PATINDEX SET TEXTSIZE 
    SUBSTRING UPDATETEXT 
    TEXTPTR WRITETEXT 
    TEXTVALID   
      

  2.   

    一般情况存储路径就OK  除非要加密之类的可以考虑存储在数据库中  字段用 image