PDA

View Full Version : سوال: درج پیام خصوصی در بانک یا فایل متنی؟؟



mahsa.n
سه شنبه 16 آذر 1389, 10:19 صبح
سلام
من یک صفحه برای درج پیام خصوصی دارم که متنش در ckeditor نوشته میشه
حالا به نظر شما من یک فیلد مثلا 2000 کاراکتری تو بانکم داشته باشم و هر پیام رو در اونجا درج کنم یا اینکه به ازای هر پیام خصوصی یه فایل متنی توی یه فولدر در ریشه سایتم درست ایجاد کنم و متن پیام خصوصی رو در اون ذخیره کنم؟

rana-writes
سه شنبه 16 آذر 1389, 11:27 صبح
سلام
شما اصلا بهتره برای پیامهاتون یه جدول ایجاد کنین با این فیلدها مثلا
شماره پیام، عنوان، متن، تاریخ ارسال، فرستنده و گیرنده
اینطوری واکشیها خیلی بهتر و راحت تره
حتی میتونین برای حذف شدن یا خوانده شدنشون هم فیلدهایی در نظر بگیرین که یه چیزی شبیه میل باکس یاهو بشه

موفق باشین

mahsa.n
سه شنبه 16 آذر 1389, 11:40 صبح
ممنون
منم تا حالا همین کارو کردم
ولی اینجوری حجم بانک بالا نمیره اگر بخوام متن رو در بانک ذخیره کنم؟

PhoenixNet
سه شنبه 16 آذر 1389, 19:09 عصر
سلام

اگر درون متن پیام های خصوصی نمی خواهید جستجو کنید متون متنی رو فشرده و به صورت باینری در دیتابیس ذخیره کنید.در حجم های بالا تا یک سوم حجم رو کاهش میده.

si6arp
چهارشنبه 17 آذر 1389, 17:46 عصر
سلام

اگر درون متن پیام های خصوصی نمی خواهید جستجو کنید متون متنی رو فشرده و به صورت باینری در دیتابیس ذخیره کنید.در حجم های بالا تا یک سوم حجم رو کاهش میده.

میشه این روش رو آموزش بدین ؟

PhoenixNet
چهارشنبه 17 آذر 1389, 23:01 عصر
سلام
توی دیتابیس نوع داده ستون را varbinary(MAX) انتخاب نمایید.
سپس می توانید با دو تابعی که در زیر می بینید متن را به بایت و بلعکس تبدیل نمایید.
دو الگوریتم برای فشرده سازی متن وجود دارد :gZip , Deflate که Deflate قدرت بیشتری دارد.هر دو توسط .Net پشتیبانی می شود.



public static string UnZipStr(byte[] input)
{
using (MemoryStream inputStream = new MemoryStream(input))
{
using (DeflateStream gzip = new DeflateStream(inputStream, CompressionMode.Decompress))
{
using (StreamReader reader = new StreamReader(gzip, System.Text.Encoding.UTF8))
{
return reader.ReadToEnd();
}
}
}
}




public static byte[] ZipStr(String str)
{
using (MemoryStream output = new MemoryStream())
{
using (DeflateStream gzip = new DeflateStream(output, CompressionMode.Compress))
{
using (StreamWriter writer = new StreamWriter(gzip))
{
writer.Write(str);
}
}
return output.ToArray();
}
}

si6arp
پنج شنبه 18 آذر 1389, 00:46 صبح
طریقه استفاده هم بگید هم کامل میشه
مثلا دارم :


string _Str = "123";

این رشته رو چه طوری وارد دیتابیس کنم و چه صوری از دیتابیس بازیابی کنم ؟