View Full Version : سوال: تاثیر null بودن یا نبودن یک فیلد
nafasak
دوشنبه 05 مهر 1389, 18:47 عصر
سلام،
"Allow Null" در طراحی جدول چه تاثیری بر کار دارد؟
tooraj_azizi_1035
سه شنبه 06 مهر 1389, 08:56 صبح
Allow به معنی اجازه و Null به معنی تهی یا پوچ بودن هست. شما با زدن این تیک به SQL Server می گی که کاربر می تونه این فیلد رو خالی بذاره یا اینکه مقداری براش ثبت کنه.
حمیدرضاصادقیان
سه شنبه 06 مهر 1389, 13:01 عصر
سلام.وقتی شما فیلدی رو allow null قرار میدی و با مقادیر Default اونو پر نمیکنی در سرعت گزارشات شما روی حجم زیاد تاثیر خواهد گذاشت زیرا برای پیدا کردن مقادیر Null شما باید از یک سری توابع استفاده کنی یا برای اینکه مقدار یک ستون Null رو به یک مقدار عادی تغییر بدی مجبوری از تابع استفاده کنی که همین در گزارشاتت تاثیر میذاره.ولی برای اینکه کاربر رو مجبور نکنی هر مقداری رو وارد کنه میتونی گزینه Default رو نیز تعیین کنی با این کار اگر کاربر مقداری وارد نکرد مقدار پیش فرضی که شما تعیین کردی در دیتابیس ذخیره خواهد شد.
موفق باشید
tooraj_azizi_1035
سه شنبه 06 مهر 1389, 13:47 عصر
سلام.وقتی شما فیلدی رو allow null قرار میدی و با مقادیر Default اونو پر نمیکنی در سرعت گزارشات شما روی حجم زیاد تاثیر خواهد گذاشت زیرا برای پیدا کردن مقادیر Null شما باید از یک سری توابع استفاده کنی یا برای اینکه مقدار یک ستون Null رو به یک مقدار عادی تغییر بدی مجبوری از تابع استفاده کنی که همین در گزارشاتت تاثیر میذاره.ولی برای اینکه کاربر رو مجبور نکنی هر مقداری رو وارد کنه میتونی گزینه Default رو نیز تعیین کنی با این کار اگر کاربر مقداری وارد نکرد مقدار پیش فرضی که شما تعیین کردی در دیتابیس ذخیره خواهد شد.
موفق باشید
آقای صادقیان یک سوال دارم:
اگر برای یک فیلد مقداری پیش فرض تعیین کنی در این صورت می تونی اون رو Allow Null کنی یا نه؟
حمیدرضاصادقیان
سه شنبه 06 مهر 1389, 14:24 عصر
سلام.بله میتونید.فقط اگر مقدار ندید مقدار Default ذخیره خواهد شد.
موفق باشید
tooraj_azizi_1035
سه شنبه 06 مهر 1389, 14:54 عصر
سلام.بله میتونید.فقط اگر مقدار ندید مقدار Default ذخیره خواهد شد.
موفق باشید
سلام آقای صادقیان،
For each column in your table, you can specify a default value that will be entered in the column if the user leaves it blank. If you do not assign a default value and the user leaves the column blank, then:
If you set the option to allow null values, NULL will be inserted into the column.
If you do not set the option to allow null values, the column will remain blank, but the user will not be able to save the row until they supply a value for the column.
متن بالا تو MSDN وجود دارده، ما تو متن می خونیم که اگه کاربر یه مقدار پیش فرض تعیین کنه و فیلد رو خالی رها کنه اون مقدار ذخیره میشه پس تا این جا Allow Null اصلاً معنی نداره و تو زمان طراحی Table این خاصیت غیرفعال میشه. Allow Null تنها زمانی معنی پیدا می کنه که Defaultی در کار نباشه.
این هم لینکش (http://msdn.microsoft.com/en-us/library/ms187872(v=SQL.100).aspx).
حمیدرضاصادقیان
سه شنبه 06 مهر 1389, 15:23 عصر
سلام.شما یک جدول بساز برای فیلد مربوطه هم گزینه allow nullرو تیک بزن هم Default براش تعریف کن وقتی اطلاعاتی وارد جدول میکنی میبینی که مقدار default رو اختصاص میده نه مقدار null. پس اولویت با این هست که اون فیلد مقدار default داشته باشه یا خیر اگر داشته باشه دیگه کاری به allow null نداره ولی اگر نداشته باشه تازه نگاه میکنه ببینه Allow null هست یا خیر که اگر بود مقدار null و اگر نبود به کاربر اجازه ثبت نمیده.
موفق باشی
Rezahak
چهارشنبه 07 مهر 1389, 08:15 صبح
ببخشيد وارد بخثتون مي شم
اختصاص خاصيت Allow null به يك فيلد باعث مي شود اگر كاربر مقداري به آن فيلد اختصاص نداد يا مقدار NULL را در آن قرار داد خطا توليد نشود
ولي delault value باعث مي شود اگر وتنها اگر كاربر در هنگام insert كردن كاربر مقداري به آن اختصاص نداد مقدار موجود در delault value در آن قرارگيرد
وگرنه شما پس از اينكه يك فيلدي كه هم allow null هست و هم delault value دارد را insert مي كنيد مي توانيد بنويسيد :
UPDATE tablename SET fieldname = NULL WHERE ...
حمیدرضاصادقیان
چهارشنبه 07 مهر 1389, 12:42 عصر
ببخشيد وارد بخثتون مي شم
اختصاص خاصيت Allow null به يك فيلد باعث مي شود اگر كاربر مقداري به آن فيلد اختصاص نداد يا مقدار NULL را در آن قرار داد خطا توليد نشود
ولي delault value باعث مي شود اگر وتنها اگر كاربر در هنگام insert كردن كاربر مقداري به آن اختصاص نداد مقدار موجود در delault value در آن قرارگيرد
وگرنه شما پس از اينكه يك فيلدي كه هم allow null هست و هم delault value دارد را insert مي كنيد مي توانيد بنويسيد :
UPDATE tablename SET fieldname = NULL WHERE ...
سلام.حرف شما صحیحه. ولی معمولا پیشنهاد میشه از فیلدهایی با مقادیر NULL استفاده نشه به جاش Default value برای آن تنظیم بشه .
nafasak
چهارشنبه 07 مهر 1389, 16:10 عصر
سلام.وقتی شما فیلدی رو allow null قرار میدی و با مقادیر Default اونو پر نمیکنی در سرعت گزارشات شما روی حجم زیاد تاثیر خواهد گذاشت زیرا برای پیدا کردن مقادیر Null شما باید از یک سری توابع استفاده کنی یا برای اینکه مقدار یک ستون Null رو به یک مقدار عادی تغییر بدی مجبوری از تابع استفاده کنی که همین در گزارشاتت تاثیر میذاره.ولی برای اینکه کاربر رو مجبور نکنی هر مقداری رو وارد کنه میتونی گزینه Default رو نیز تعیین کنی با این کار اگر کاربر مقداری وارد نکرد مقدار پیش فرضی که شما تعیین کردی در دیتابیس ذخیره خواهد شد.
موفق باشید
جناب صادقیان،
خیلی ممنون، پس نتیجه ای که از این بحث میگیریم اینه که از مقادیر null بخاطر پایین آوردن سرعت پرهیز کنیم...
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.