PDA

View Full Version : نظر شما درباره اين نوع طراحي بانك براي ذخيره اطلاعات تماس چگونه هست؟



complexcoding
یک شنبه 15 اردیبهشت 1392, 21:49 عصر
با سلام
نظر شما درباره اين نوع طراحي بانك براي ذخيره اطلاعات تماس چگونه هست؟
يك بانك با قابليت هاي زير: وارد كردن اطلاعات خطوط قرمز اجباري هستند.
--------------------
جدول اول :
شناسه (int)
نام(nvarchar50)
نام خانوادگي(nvarchar50)

جدول دوم (پس از پركردن جدول اول) :
ايميل
آدرس سايت
آدرس منزل
كدپستي(int)
شماره تلفن ثابت(int)
شماره تلفن همراه(int)
توضيحات(nvarcharMAX)
--------------------
درباره ي اطلاعاتي كه هم از اعداد و علامت هاي نشانه گذاري و ... استفاده مي شه نمي دونم چه نوع داده اي رو انتخاب كنم؟
اگر موردي درباره اطلاعات تماس از قلم افتاده و كم داره با كمال تشكر از شما به من گوشزد كنيد.
ممنون

مهدی هادیان2
دوشنبه 16 اردیبهشت 1392, 11:03 صبح
بسم الله الرحمن الرحیم

با سلام
نظر شما درباره اين نوع طراحي بانك براي ذخيره اطلاعات تماس چگونه هست؟
يك بانك با قابليت هاي زير: وارد كردن اطلاعات خطوط قرمز اجباري هستند.
--------------------
جدول اول :
شناسه (int)
نام(nvarchar50)
نام خانوادگي(nvarchar50)

جدول دوم (پس از پركردن جدول اول) :
ايميل
آدرس سايت
آدرس منزل
كدپستي(int)
شماره تلفن ثابت(int)
شماره تلفن همراه(int)
توضيحات(nvarcharMAX)
--------------------
درباره ي اطلاعاتي كه هم از اعداد و علامت هاي نشانه گذاري و ... استفاده مي شه نمي دونم چه نوع داده اي رو انتخاب كنم؟
اگر موردي درباره اطلاعات تماس از قلم افتاده و كم داره با كمال تشكر از شما به من گوشزد كنيد.
ممنون
با سلام
به نظرم كدپستي شماره تلفن ثابت شماره تلفن همراه از نوع varchar(تعداد مورد نیاز) باشه. چراکه نمی خواهیم اعمال محاسباتی رو فیلدهای مذکور انجام دهیم.
راجع به توضيحات(nvarcharMAX): شنیدم که از nvarcharMAX استفاده نکنیم و سعی کنیم Max رو مقدار بدیم؛ مثلا nvarchar(200).
موفق باشید.

complexcoding
دوشنبه 16 اردیبهشت 1392, 13:14 عصر
ممنون
براي اطلاعاتي كه هم عددي هستن هم رشته اي چه نوع داده اي رو در نظر بگيرم؟

niegrua
دوشنبه 16 اردیبهشت 1392, 13:35 عصر
کد پستی
مثلا: (nvarchar(20
چون که شاید کد پستی شهری همراه با کاراکتر باشد. 20-30 هم حداکثر
بسته به سیستم شماره گذاری ملی کد پستی کشور یا کشور های مورد نظر، تصمیم بگیرید !

شماره تلفن ثابت(int)
شماره تلفن همراه(int)
باقی بمونند که کسی جز عدد چیزی دیگه وارد نکنه !!!

* یک فیلد برای کد شهر یا شهرستان بزارید یا از یوزر درخواست کنید، شماره رو همراه با کد بزنه ! ولی اگر بعدا کد شهرشون عوض شد؟؟؟؟؟ منطقاً جدا باشن بهتره ! دیدن دوربرد در طراحی دیتابیس یعنی آینده ی بی دردسر.


توضيحات(nvarcharMAX) -
MAx قابلیت ذخیره متن تا 2 گیگا بایت رو داره که اصلا منطقی بنظر نمیرسه برای توضیحات !
و nvarchar(4000) حداکثر میزانش هست ! شما شاید مایل باشد 1000 بزارید به این معنی که هزار کاراکتر هر کدام 2 بایت (برای unicode ) . یعنی باکس توضیحات حداکثر ذخیره سازیش 2000 بایتز میشه. یا 2 کیلوبایت !

niegrua
دوشنبه 16 اردیبهشت 1392, 13:43 عصر
از nvarchar استفاده کنید ! هم اعداد و ساین ها و ... رو کاملا شامل میشه !
از گرفتن اطلاعات غیر مفید یوزر، خوداری کنید تا فرم ساده تر و سریع تر باشه تا تعداد یوزر هایی که فرم رو پر می کنند افزایش پیدا کنه !
فرم های طولانی و زیاد رو هر کسی پر نمی کنه !





درباره ي اطلاعاتي كه هم از اعداد و علامت هاي نشانه گذاري و ... استفاده مي شه نمي دونم چه نوع داده اي رو انتخاب كنم؟
اگر موردي درباره اطلاعات تماس از قلم افتاده و كم داره با كمال تشكر از شما به من گوشزد كنيد.
ممنون

مهدی هادیان2
دوشنبه 16 اردیبهشت 1392, 20:46 عصر
بسم الله الرحمن الرحیم
با سلام

شماره تلفن ثابت(int)
شماره تلفن همراه(int)
باقی بمونند که کسی جز عدد چیزی دیگه وارد نکنه !!!
به نظرم همون varchar بهتره. برای اینکه کسی تنها عدد وارد کنه میشه از طریق برنامه نویسی کنترل کرد.
موفق باشید.

niegrua
دوشنبه 16 اردیبهشت 1392, 21:10 عصر
ضمن تشکر، اطلاع دارید برای C# برای این نوع کنترل از چه متد و کلاسی استفاده می کنیم؟


بسم الله الرحمن الرحیم
با سلام

به نظرم همون varchar بهتره. برای اینکه کسی تنها عدد وارد کنه میشه از طریق برنامه نویسی کنترل کرد.
موفق باشید.

مهدی هادیان2
سه شنبه 17 اردیبهشت 1392, 09:57 صبح
بسم الله الرحمن الرحیم

ضمن تشکر، اطلاع دارید برای C# برای این نوع کنترل از چه متد و کلاسی استفاده می کنیم؟
با سلام
خواهش میکنم.
در رویداد KeyPress اون تکسی که میخواهید کاربر تنها عدد وارد کنه کدی مثل زیر بنویسید:
///
///Force type Digit Number And Bachspace
///
if (e.KeyChar == '\b')
{
e.Handled = false;
return;
}
if (e.KeyChar < '0' || e.KeyChar > '9')
e.Handled = true;
موفق باشید.

complexcoding
سه شنبه 17 اردیبهشت 1392, 11:18 صبح
از گرفتن اطلاعات غیر مفید یوزر، خوداری کنید تا فرم ساده تر و سریع تر باشه تا تعداد یوزر هایی که فرم رو پر می کنند افزایش پیدا کنه !
فرم های طولانی و زیاد رو هر کسی پر نمی کنه !داداش خيلي استفاده كردم .
درباره دريافت اطلاعات زياد همه رو اجباري نكردم براي اينكه فرمم همه كاره باشه . يه جورايي براساس نيازهاي خودم بيشتر اقدام به ساختش كردم. چون هم شماره هم آدرس سايت تو اينترنت مفيد بود اما بقيه فيلدها رو هم براي مواقع ضروري گذاشتم.
فعلا مشكلم كوئري نويسي هست يه جورايي نمي دونم چطوري محاسبات بر روي فيلدها رو در سمت اس كيو ال انجام بدم.:ناراحت:

niegrua
سه شنبه 17 اردیبهشت 1392, 16:35 عصر
اگر یک هفته وایسی می تونم توی کوئری بهت کمک کنم. مبحثش رو تا چند روز دیگه تموم می کنم.



فعلا مشكلم كوئري نويسي هست يه جورايي نمي دونم چطوري محاسبات بر روي فيلدها رو در سمت اس كيو ال انجام بدم.:ناراحت:

zerocool151
چهارشنبه 01 خرداد 1392, 03:33 صبح
چرا وقیت همهی آنها مربوط به یک موجودیته 2 تا جدولش کردی؟؟