سلام.
برای موارد زیر بهترین نوع داده چیه؟!
توضیح:
عبارت یادآوری یه جمله ی خیلی کوتاه یا یک کلمه است.
سطح دسترسی یک کلمه است.
-----------------------------------------------------------------
حجم اطلاعات و سرعت اجرا خیلی مهمه.
استفاده از نام فیلد های فارسی و یا بکارگیری کاراکتر هایی مثل فاصله در نام فیلد توصیه نمیشه، روی کارایی تاثیر خاصی نداره اما اصولی نیست.
از نظر کارایی varchar سریعتر و کم حجم تر از nvarchar است، اگر در فیلدی صرفا عبارات انگلیسی ذخیره می کنید، nvarchar توصیه نمیشه،
varchar هم سریعتر و هم کم حجم تر خواهد بود.
تا حد امکان از MAX استفاده نکنید، روی کارایی تاثیر داره، (nvarchar(1000 سریعتر از (nvarchar(MAX خواهد بود.
اگر می خواهید گذر واژه از امنیت بالایی برخوردار باشه خود گذر واژه رو ذخیره نکنید، یک نوع Hash رویش بکار ببرید و خروجی را به نحوی ذخیره نمایید.
مثلا بصورت Base64 در یک varchar ثبت اش کنید. نکته اینجا است که Hash یک طرفه است، از روی مقدار ذخیره شده صرفا می توان فهمید رمزی که
الان کاربر وارد می کند صحیح است یا خیر (رمز وارد شده را Hash کرده و با مقدار ذخیره شده مقایسه می کنند)، اما نمی توان فهمید رمز اصلی
که Hash اش ذخیره شده دقیقا چیست. اینطوری کسی به سادگی با دسترسی به مقدار فیلد گذر واژه را کشف نخواهد کرد.
اگر برای سطح دسترسی پروفایل ایجاد می کنید (مثلا دسترسی با نام پروفایل manager) که هیچ، وگرنه معمولا برای دسترسی های از قبل تعریف شده
از بیت های یک عدد bigint برای مشخص کردن سطوح دسترسی استفاده می کنند. مثلا بیت سوم برای امکان تغییر رمز عبور.
در مورد تاریخ ها باید به نحوه استفاده و کاربرد شون توجه کرد، رجوع شود به :
بهترین و ساده ترین روش برای استفاده از تاریخ شمسی !