PDA

View Full Version : سوال: یه سوال در مورد بانک اطلاعاتی ...



thacker
یک شنبه 28 آبان 1391, 00:06 صبح
سلام...
یه سوال داشتم ... اینکه توی دیتابیس ، هر ستون از جدول یه قسمت به عنوان Type داره که نوع مقداردهی اون ستون رو مشخص میکنه ... مثلا varchar, int, date, text , ....
حالا سوالم اینه که مثلا varchar با text چه فرقی داره ؟
یا کلا همه رو long text بزاریم میتونیم انواع ورودی رو قبول کنیم ... چه عددی ، چه متنی ... چه کوتاه ، چه بلند ...
این قابلیت چه فایده ای داره ؟؟؟
با تشکر ...

mrgraphy
یک شنبه 28 آبان 1391, 00:35 صبح
سلام دوست عزیز.
بین varchar با text خب فرق زیادی هستش. شما در varchar نهایتا 255 تا کاراکتر میتونی درج کنی اما در text خیلی بیشتر از این حرفهاست.
مبحث کلی برمیگرده به نرمال سازی پایگاه های داده که برای سیستم های بزرگ خیلی مهم هستش.

thacker
یک شنبه 28 آبان 1391, 00:41 صبح
یعنی توی سیستمهای جزئی فرقی نداره ؟
اگه فرقی نداره همیشه از تکست استفاده میکنم که محدودیت هم نداره ...

plague
یک شنبه 28 آبان 1391, 00:46 صبح
باید نوع فیلد رو متناسب با چیزی که قراره توش ذخیره کنی انتخاب کنی
تفاوت varcharو text در تعداد کارکاتر هایی هستن که میتونن توی خودشون ذخیره کنن
مثل یه خونه کوچیک و یه آپارتمان میمونن
شما وقتی میخای یه نفر رو یجا جا بدی نمیای یه آپارتمان رو بدی دست ینفر
بعد هر دفعه که به این طرف احتیاج داشتی 1 ساعت آپارتمان رو بالا و پایین بری تا پیداش کنی
میای خونه یه اتاقه رو بهش میدی که هروقت نیاز داشتی بهش سریع گیرش بیاری
شما میتونی برای همه text بزاری وی این باعث کندی برنامه و هدر رفتن منابع تون میشه

بعضی نوع های دیگه هم هستن که علاوه بر مزیت سرعت یه سری خواص دیگه مانند فرمت پزیری و قبول کردن مقادیر مشخص و عملیات پزیری بهره میبرن
مثلا int که ماله اعداد صحیحه
علاوه بر سرعت بسیار بالا مقادیر غیر عددی رو قبول نمیکنه و اگه حرف بزاری دخلش تبدیل به صفر میشه . یه سری خواص دیگه

از همه مهمتر وقتی عددی رو توش ذخیره میکنی اون ماهیت عددی خودش رو حفظ میکنه
درحالی که عددی که توی text ذخیره میشه مثل شماره موبایل شماست
مثلا
09123333333
به ظاهر عدده ولی شما تلفن رو هیچوقت جمع یا منها یا ضرب ! نمیکنی و خواص عددی رو نداره درواقع یه رشتست که با اعداد نمایش داده میشه

rezaonline.net
یک شنبه 28 آبان 1391, 02:33 صبح
در تکمیل حرفهای دوستموم حتی char با varchar فرق میکنه دیگه text رو خودت بگیر .
توی دیتابیس حتی اگه یه بایت اضافه بدی توی سرعت تاثیر داره .
همیشه طرف بالا رو فرض کن اگه قراره فقط یک عدد 10 رقمی وارد بشه int 10 بذار اگه قرار ایمیل وارد بشه varchar 255 بذار اگه قراره متن معمولی وارد بشه text بذار و ...
همچنین این نوع ها در ایندکس گذاری هم دخیل هستن .
خلاصه این مبحث خیلی داغه بهتره یه سرچ درست درمون انجام بدید و چند تا مقاله بخونید