برگزیده های پرشین تولز

فیلدهایی با تعداد ماکزیمم 36 کاراکتر

Helen_Farhani

کاربر تازه وارد
تاریخ عضویت
30 مارس 2007
نوشته‌ها
89
لایک‌ها
0
یک برنامه را در نظر بگیرید که تعداد زیادی Text Field داره و همه maxlength آنها برابر 36 هست.
قرار هست که محتوای همه این فیلدها یونیکد باشه و در دیتابیس ذخیره بشن.
سوال من این هست به نظر شما، نوع فیلدی که برنامه نویس برای ذخیره این داده ها در دیتابیس در نظر گرفته چی هست ( با توجه به اون maxlength که در همه جا برابر 36 هست).
 

sasan_66

کاربر تازه وارد
تاریخ عضویت
18 جولای 2006
نوشته‌ها
450
لایک‌ها
0
CHAR(36) خوب نيست؟
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,270
لایک‌ها
34
محل سکونت
mt.cgi

Helen_Farhani

کاربر تازه وارد
تاریخ عضویت
30 مارس 2007
نوشته‌ها
89
لایک‌ها
0
CHAR(36) خوب نيست؟
من در این مورد چیزی نمیدونم. یعنی من نمیدونم اون برنامه نویس چه گزینه ای را انتخاب کرده. در واقع میخوام بدونم برای شرایطی که عرض کردم، بهترین و کم هزینه ترین گزینه چی هست!
 

peymanafraz

کاربر تازه وارد
تاریخ عضویت
28 دسامبر 2005
نوشته‌ها
137
لایک‌ها
0
محل سکونت
$strHome
دوستان صبر کنین. توی SQL Server اگه باشه بدلیل اینکه یونیکده گزینه مناسب nVarchar 36 هست ولی توی MySQL گزینه باید varchar 36 باشه.
در جواب دوستمون درباره تفاوت varchar و char هم باید بگم varchar سایزش داینامیکه یعنی اگه سایزش رو بدی 36 ولی توش یه رشته 30 تایی بریزی اون 6 کرارگتر اضافی حافظه اشغال نمیکنن ولی اگه char باشه حافظه اشغال میشه.
 

Helen_Farhani

کاربر تازه وارد
تاریخ عضویت
30 مارس 2007
نوشته‌ها
89
لایک‌ها
0
درست هست که هر کاراکتر یونیکد 2 بیت فضا اشغال میکند؟
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
درست هست که هر کاراکتر یونیکد 2 بیت فضا اشغال میکند؟

:blink:

خب اشکال نداره :p من هم ۵ سال طول کشید تا یادگرفتم بایت و بیت رو به جای هم استفاده نکنم ;)

این هم توضیحاتی در مورد UTF-8

اگر چه من فکر می کردم که UTF-8 دو بایت (۱۶ بیت) فضا اشغال می کنه ولی این راهنمای ویکی یک چیزه دیگه ای داره می گه
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
:blink:

من فکر می کردم که UTF-8 دو بایت (۱۶ بیت) فضا اشغال می کنه ولی این راهنمای ویکی یک چیزه دیگه ای داره می گه
آلان داشتم درست نگاه می کردم متوجه اشتباه هم شدم !
کد:
UTF-8 encodes each character in one to four octets (8-bit bytes):

   1. One byte is needed to encode the 128 US-ASCII characters (Unicode range U+0000 to U+007F).
   2. Two bytes are needed for Latin letters with diacritics and for characters from Greek, Cyrillic, Armenian, Hebrew, Arabic, Syriac and Thaana alphabets (Unicode range U+0080 to U+07FF).
   3. Three bytes are needed for the rest of the Basic Multilingual Plane (which contains virtually all characters in common use).
   4. Four bytes are needed for characters in the other planes of Unicode, which are rarely used in practice.
 

Helen_Farhani

کاربر تازه وارد
تاریخ عضویت
30 مارس 2007
نوشته‌ها
89
لایک‌ها
0
:blink:

خب اشکال نداره :p من هم ۵ سال طول کشید تا یادگرفتم بایت و بیت رو به جای هم استفاده نکنم ;)

این هم توضیحاتی در مورد UTF-8

اگر چه من فکر می کردم که UTF-8 دو بایت (۱۶ بیت) فضا اشغال می کنه ولی این راهنمای ویکی یک چیزه دیگه ای داره می گه

آقا میلاد حالا بایت و بیت با هم چه فرقی میکنند :blush: مهم این هست که آدم نیتش پاک باشه. :rolleyes:

برای UTF-8 میگه 4 بایت. درسته؟ ولی در جایی دیگه برای Greek, Cyrillic, Armenian, Hebrew, Arabic, Syriac میگه 2 بایت. :wacko:
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
می تونه از ۱ بایت تا ۴ بایت رو اشغال کنه (اگر چه هنوز شک دارم که قضیه چی شد ! )
 
بالا