PDA

View Full Version : انتخاب نوع فیلد



سعید کشاورز
سه شنبه 23 آبان 1391, 23:22 عصر
سلام دوستان میخام یه بانک طراحی کنم اما چون تازه کار هستم نمیدونم نوع فیلد رو چی در نظر بگیرم که بعدا به شکل بر نخورم..برای فیلد های زیر چه مقادیری مناسب هستش؟
کد پرسنلی
نام
شماره شناسنامه
تاریخ تولد
تلفن همراه و ثابت
آدرس

farghabil
سه شنبه 23 آبان 1391, 23:31 عصر
بهتره همه رو nvarchar بگیری
بعد توبرنامه اگه لازم شد تبدیلش کنی به نوع دیگه

اگه توضیح بیشتر میخوای بگو

سعید کشاورز
چهارشنبه 24 آبان 1391, 00:01 صبح
بهتره همه رو nvarchar بگیری
بعد توبرنامه اگه لازم شد تبدیلش کنی به نوع دیگه

اگه توضیح بیشتر میخوای بگو
دلیل این کار چیه که nvarchar بگیرم؟

farghabil
چهارشنبه 24 آبان 1391, 09:12 صبح
سلام مجدد
کار کردن با رشته ها خیلی ساده تره
رشته ها رو میشه به هر فرمتی که بخوای تبدیل کنی
مهمترین دلیلش اینه

حمیدرضاصادقیان
چهارشنبه 24 آبان 1391, 09:18 صبح
سلام.


بهتره همه رو nvarchar بگیری
اینکار کاملا غلطه.میدونید هر مقدار در اینجا دوبرابر حجم خواهد گرفت؟ میدونید روی سرعت گزارشات چقدر تاثیر منفی خواهد گذاشت؟ چه لزومی داره فیلدهای با طول ثابت از نوع متغیر تعریف شوند؟؟؟؟


کد پرسنلی
معمولا یک فیلد عددی هست و رشته ای داخل آن نیست پس بهتره از یک نوع عددی بسته به طول کد پرسنلی استفاده کنید.مثلا اگر زیر 10 رقم بود میتونید از Int استفاده کنید.

نام
برای این نوع Nvarchar در نظر بگیرید که هم Unicode رو پشتیبانی کنه هم اینکه طولهای متغیری داره و به میزان داده ای که در این فیلد ثبت میشه ، فضا اشغال میکنه.


شماره شناسنامه
این نوع عدد هست ولی چون ممکنه اولین عدد صفر باشه مانند کدملی بهتره از نوع varchar(10) بگیرید چون کدملی 10 رقمه و ممکنه مقادیر زیر 10 رقم نیز ثبت بشه.


تاریخ تولد
از نوع date بگیرید و در نرم افزارتون به شمسی تبدیل کنید که بتوانید از توابع تاریخ نیز استفاده کنید.

تلفن همراه و ثابت
برای تلفن همراه چون طولش ثابته اگر میخواهید با صفر اولیه ذخیره کنید بهتره char(11) بگیرید اگر بدون صفر میخواهید ذخیره کنید و در برنامه با استفاده از تبدیل و اضافه کردن صفر به کاربر نشون بدید از نوع Decimal(11,0) بگیرید.
برای تلفن ثابت نیز Varchar(15) بگیرید چون با کدهای شهرهای مختلف طول رشته شما متفاوته ، البته بازهم عرض میکنم اگر صفر اولیه ذخیره نمیشه میتونید از نوع عددی بگیرید.


آدرس
از نوع Nvarchar بگیرید که بتوانید به صورت Unicode مقادیر رو ذخیره کنید و تعدادش نیز بسته به انتخاب شما می باشد. شخصا تعداد این متغیر رو معمولا بین 100 تا 200 در نظر میگیرم.

موفق باشید

farghabil
چهارشنبه 24 آبان 1391, 10:16 صبح
بله شما درست میفرمایید من به حجم توجه نکردم و حواسم به سهولت کار کار بوده ولی برای فیلد هایی از نوع تاریخ چرا باید date تعریف بشن و دوباره به شمسی تبدیل کنی. راه ساده تر هم هست. اونم اینکه تاریخ رو به صورت رشته ای از اعداد پشت سرهم مثل 13910824 ذخیره بشن. برای نمایش میتونید / را بهش اضافه کنید و برای مقایسه و تعیین نحدوده خاص برای گزارش گرفتن به عدد تبدیل کرده ئ مقایسه عددی کنید مثلا میخواهید لیستی از کارها از 4 روز پیش را ببینید که میشه
نمایش بده لیست رو به شرطی که date<13910824 and date>13910820

AMIBCT
چهارشنبه 24 آبان 1391, 15:32 عصر
من تاریخ‌ها رو با فرمت Julian Day که یک عدد هست ذخیره می‌کنم
حجم ذخیره‌سازی، مقایسه، تبدیل، مرتب‌سازی اون ساده و سریع است