
نوشته شده توسط
Mahmoud Zaad
چک باکس هم به همین روش میشه. یعنی برای هر چک باکس یه فیلد در دیتابیس داریم و اگر چک باکس تیک داشت true ذخیره میشه و اگر نداشت false ذخیره می شه. در موقع دریافت اطلاعات هم اگر مقدار در دیتابیس true بود چک باکس رو تیک می زنید و اگر false بود بدون تیک می مونه.(یا تیکش رو بر می دارید.)
البته برای انتخاب نوع داده هیچ اجباری هم در کار نیست شما می تونید نوع داده ای رو varchar یا nvarchar یا int یا smallint هم انتخاب کنید و اگر چک باکس/رادیو باتن تیک داشت عدد 1 رو ذخیره کنید و اگه تیک نداشت 0 رو ذخیره کنید. ولی نوع داده ای استاندارد برای این کارها همین bit هست.
-------
کمبوباکس بستگی داره که اطلاعاتش از کجا میاد. شما همیشه باید به این فکر کنید که تا جایی که ممکنه کمترین حجم داده رو ذخیره کنید و اگر لازم بود داده ای رو به هر دلیلی (مثلا اشتباه تایپی) تغییر بدید، با کمترین هزینه این کار رو انجام بدید. (منظور هزینه مالی نیست منظور کمترین دردسر و کدنویسی و زمان و ... هست)
مثلا فرض کنید شما همین مرد یا زن بودن رو میخواید از کمبوباکس بگیرید. 2 راه وجود داره یا اینکه یه فیلد nvarchar در دیتابیس تعریف کنید و اگر کاربر مرد رو انتخاب کنید کلمه مرد رو ذخیره کنید و اگه زن رو انتخاب کرد کلمه زن رو ذخیره کنید. حالا مثلا فرض کنید نرم افزار در حال استفاده است و شما متوجه می شید مرد رو "مرذ" نوشتید. حالا باید برید در دیتابیس کل کلمات رو پیدا کنید و تغییر بدید.
اما راه دوم و صحیح، استفاده از فیلد از نوع bit هست. حالا اگه اشتباه تایپی هم در نرم افزار باشه به راحتی فقط نرم افزار رو تغییر می دید و مشکل حل میشه.
یک حالت دیگه اینه که کمبوباکس به یه جدول بایند هست که در اینجا باید id این جدول در جداول دیگه ذخیره بشه.