PDA

View Full Version : طول فیلد Decimal



Payman62
دوشنبه 03 مرداد 1390, 12:30 عصر
سلام.
رنج دسیمال از ۱+۳۸^۱۰ تا ۱-۳۸^۱۰ هست.
حتما میدونید طول دسیمال رو میتونیم تعیین کنیم.
میخوام بدونم اگه مثلا من یه فیلد رو decimal(8, 2) تعریف کنم با توجه به این که حداکثر طول فیلد 8 رقم عدد است یعنی 999999.99 بزرگترین عددیه که میتونه بگیره کمتر در دیتابیس فضا اشغال میکنه یا به همون اندازه ۳۸^۱۰ فضا اشغال میشه؟

یه فیلد با 2 رقم اعشار دارم که ممکنه رنج اعدادش از 1 تا 1 میلیون باشه.
میخوام بدونم دسیمال انتخاب کنم یا تایپ دیگه ای مثل Money.

حمیدرضاصادقیان
دوشنبه 03 مرداد 1390, 13:16 عصر
سلام.
میتونید از همون Decimal استفاده کنید. فضایی هم که میگیره با این سایز مورد نظر شما 5 بایت اشغال میکنه. البته با 2 رقم اعشار گزینه مناسبتر میتونه Money باشه.

Payman62
چهارشنبه 05 مرداد 1390, 01:21 صبح
سلام.
money که 8 بایت میگیره. چرا مناسب تره؟

حمیدرضاصادقیان
چهارشنبه 05 مرداد 1390, 08:17 صبح
نه الزاما به خاطر حجمی که اشغال میکنه. در اون مقداری که شما میخواهید کار کنید محاسباتش دقیق هست. همچنین میتوانید در دیتابیس از علائم $, یا واحدهای پولی دیگر هم استفاده کنید.
با نوع Money شما میتوانید تا 4 رقم اعشار را بدقت محاسبه کنید. این رو از اون بابت عرض کردم که دیگه نیازی به مشخص کردن سایز نیست . ولی در کل پیشنهاد مناسب این میتونه باشه که از نوع Decimal استفاده کنید. چون ظاهرا صحبت بر سر این هست که در نسخه های بعد ممکنه نوع داده Money ساپورت نشه. من فقط به دلیل وارد کردن علائم مالی و یکی هم دقت اعشار اون به طور ثابت تا 4رقم عرض کردم. اگر این ملاحظات براتون اهمیت نداره به نظرمن بهترین گزینه همون نوع Decimal هست.ولی پیشنهادم این هست که مقدار اعشاری رو بیشتر در نظر بگیرید.چون اگر 4 صفر از پول ملی حذف بشه شاید با این نوع به مشکل بربخورید و مجبور بشید دوباره تغییراتی در ساختار دیتابیس داده و طول قسمت اعشاری رو افزایش بدید.