PDA

View Full Version : گفتگو: کدوم روش ساختن بانک عملکرده بهتری داره



DotNet_King
شنبه 29 تیر 1387, 16:52 عصر
با سلام و خسته نباشید به دوستان عزیز

فرض کنید دو تا جدول داریم برای پروژه فرضی انتخاب واحد دانشجویی
جدول 1
نام درس- آی درس - آی دی استاد - واحد درس -پیش نیاز - هم نیاز -دانشکده - ظرفیت ...
جدول 2
آی دی دانشجو - آی دی درس - واحد درس

بعضی ستون های جدول یک در هنگام کار با جدول دوم استفاده زیادی داره مثلا چک کردن تعداد واحد های انتخابی تا کنون دانشجو

حالا سوال من اینجاست که بهتره در هربار انتخاب درس تعداد واحد هر درس رو در همون جدول انتخاب واحد قرار بدم و جمع کنم یا که نه اون رو در جدول 1 بدست بیارم و در متغییری ذخیره کنم و بعدجمع کنم.

یعنی ID رو از جدول دو بخونم ----- بعد همون رو از یک پیدا کنم - واحد درس رو بریزیم تو یه متغیر
و همین روند برای تموم درس های انتخابی.......

به عبارت دیگر این جابجایی بین چند جدول باعث نمیشه عملکرد سایت بیاد پایین و فشار زیادی به منابع sql server بیاد

دستورات sql این قابلیت رو داره که از همون اول یه گروه ID رو بفرستی به جدول یک و بعد در جدول دو به دست بیاریشون و جمعشون کنی

مثلا ID درس هایی که 23,34,64,33,32,24,42 دانشجو انتخاب کرده بعد با یه where اینها رو فقط بگیری و مجبور نباشی بین دو جدول مرتبا جابحا بشی

SYNDROME
شنبه 29 تیر 1387, 19:02 عصر
اگر مقادیر فوق را در یک فیلد ذحیره کنید مثلا یک فضا در بانک اشغال می شود که اگر تعداد این رکوردها بالا برود حجم بانک زیاد می شود ولی در این روش دیگر نیازی نیست شما یک عمل جمع را انجام دهید.
اکر هم بخواهید با عمل جمع چنین کاری را انجام دهید مثلاً دیگر نیاز به فیلد نیست ولی باید توجه کنید که این عمل زمانی را می گیرد.البته توجه کنید که این زمان در تعداد رکوردهای کم قابل چشم پوشی است.
حالا باید ببینید کدام روش برای برنامه شما مناسبتر است.
موفق باشید

بهنام بهمنی
یک شنبه 30 تیر 1387, 17:45 عصر
اگر شما دو جدول را يكي كني به ميزان زيادي Data Redundancy ايجاد كرده ايد و اين موضوع با اصول نرمال سازي پايگاه داده منجمله وابستگي تابعي به كليد و... تضاد دارد و مطمئنا سرعت شما را هم پايين خواهد آورد ، بخاطر موضوع اول ذكر شده.

توصيه مي كنم مطالعاتي راجع به نرمالسازي پايگاه داده انجام دهيد . از روي كتابهاي C.J.Date و يا كتاب دكتر حقجو و يا جستجو در Internet

موفق باشيد