خرید بک لینک

ببینید این بر میگرده به اصول اصلی طراحی بانک های داده رابطه ای
وجود جدول یوزر رول کاملا ضروری هست به دلایل بسیار زیادی
اولین مسئله که در بانک اطلاعاتی بسیار اهمیت دارد سرعت است؛ با ایندکس گذاری و دادن شماره به هرکدام از رکورد ها سرعت جستجو و یافتن راحت تر اطلاعات از نظر سخت افزاری بر روی دیسک ذخیره اطلاعات بیشتر میشه و طراحان حرفه ای به هیچ عنوان از آن چشم پوشی نمیکنند.

مسئله دیگری که وجود دارد جلوگیری از افزونگی اطلاعات است ؛ نباید اجازه داد اطلاعات بطور تکراری در بانک داده ذخیره بشه ؛ علاوه بر افزایش حجم و کندی سرعت ؛ عملیات ویرایش و غیره بسیار دشوار می شود و احتمام رخدادن خطا بسیار بسیار بالا می رود ؛ یک طراح حرفه ای هرگز چنین ریسکی را نمی پذیرد
مثلا در این نمونه می بایست برای هرکاربر یک فیلد دیگه اضافه میشد که دسترسی به اون سخت بود و اگر به عنوان مثال قرار بود نام یک رول تغییر داده بشه ؛ میبایست تک تک تمام جدول یوزر برای تغییر نام یک رول ویرایش میشد ؛ علاوه بر حجم سنگین پردازیشی که به سیستم اعمال می شد ؛ احتمال رخ دادن خطا بسیار بالا میرفت ؛ اما در طراحی که مشاهده میکنید کافیه نام رل به سادگی در یک رکورد تغییر کند تا تمام کاربران نام جدید رول خود را مشاهده کنند.

مسئله دیگر ارتباط یک به چند است که در این نوع ترکیب میتوان از آن استفاده کرد . اگر یک کاربر بخواهد چند رول مختلف داشته باشد آن وقت چه ؟
اگر یک فیلد نام رول در جدول کاربران وجود داشت باید چندین بار کل رکورد یک کاربر کپی برداری بشه و آن وقت هرکاربر در این جدول بجای یک رکورد چندین رکورد مختلف خواهد داشت که این باعث ازهم گسیختگی و از بین رفتن نظم در این جدول و کل سیستم میشد و بازهم با مسئله افزونگی اطلاعات روبرو خواهیم بود و بارها و بارها اطلاعات تکراری مشخصات یک کاربر در این جدول کپی میشد و حذف و ویرایش آنهم دردسر ها و تحمیل بار اضافه به سیستم بود ؛ علاوه بر اینکه افزایش هر چه بیشتر اطلاعات به معنی کندتر شدن کل سیستم خواهد بود و به هیچ عنوان نباید اجازه داده شود اطلاعات تکراری و اضافه ذخیره شود.

مسائل پیچیده و بنیادی دیگه ای هم در طراحی وجود داره که دیگه از توضیح دادن اونا صرف نظر میکنم ، بنابراین پاسخ شما این هست که وجود این جدول از نقطه نظر طراحی بسیار مهم و حیاتی است و عملا حذف ناشدنی ؛ اما اینکه می شود آنرا حذف کرد و یا خیر ؛ پاسخ بلی است ! شما میتوانید جدول های رول و یوزر رول را حذف کرده و یک فیلد به جدول یوزر اضافه کنید با نام RoleName ! البته این نوع ساخت و ساز من را به یاد طراحی های فارغ التحصیلان و مهندسان ایرانی کامپیوتر می اندازد !

الان که چنین طراحی بنیادی و دقیقی انجام شده ، شما همچنان براحتی تمام کارهایی که مورد نیازتون هست رو میتونید انجام بدین ؛ البته شاید به مقدار بیشتری تخصص در این زمینه احتیاج داشته باشین

برای اینکه بتوانیم در جدول اصلی اطلاعاتی از دیگر جدول های مرتبط شده را نمایش بدهید می بایست یک فیلد مجازی در جدول کاربران ایجاد کنیم که بر اساس شماره ID کاربر به شماره ID جدول رول متصل باشد و لوک آپ آن یا همان فیلد به نمایش در آمده فیلد Name در جدول رولز باشه
بنابراین برای نمایش اطلاعات در یک جدول ؛ حتما نیاز نیست تمامی فیلد ها بطور سخت افزاری در آن جدول ذخیره شده باشند و میشود با فیلد های لوکاپ و غیره اطلاعات مرتبط را به نمایش در آورد.

جستجو در مورد کاربران یک رول خاص ؛ اکنون نیز قابل انجام شدن با سرعت بسیار بالایی است ؛ فقط ممکن است کمی روند کار دشوار شده باشد.
شما نام یک رول را دریافت میکنید و شماره آن را در جدول یوزر رولز فیلتر میکنید تا مابقی رول ها مخفی شوند ، سپس رکورد های باقی مانده حاوی ID کاربرانی است که دارای آن رول بخصوص هستند و فقط کافی است با فیلد های لوکاپ ؛ جدول های مجازی و مسائلی از این دست با توجه به ID لیست آن کاربران بنمایش در بیاید.
و جالب تر این است که این روش جستجو بسیار سریع از آن است که بخواهید نام یک رول را که در فیلد جدید اضافه شده به جدول کاربران وجود دارد جستجو بفرمایید .
زیرا جستجو اولیه نام در یک جدول بسیار کوچک انجام میگیرد و مابقی جستجو ها فقط جستجو اعداد هستند که این نوع جستجو سرعت بسیار بالایی دارد.
همیشه دقت داشته باشین که عملیات جستجو با فیلتر بسیار سریعتر از اجرا هرگونه دستور SQL میباشد و بیشترین پردازش نیز مربوط به ضرب دکارتی یا همان فرمان join در جداول هست که تا جای ممکن از آنها باید اجتناب شود.

ببخشید که کوتاه و با بی حوصلگی پاسختون رو دادم ؛ پیشنهاد من این هست که برای بدست آوردن اطلاعات بیشتر و همچنین برای یافتن پاسخ چنین سوالاتی آن را در فروم ویژه برنامه نویسی ایران barnamenevis.org و یا فروم های خارجی برنانمه نویسی مطرح کنید و منابع خارجی نحوه انجام چنین کارهایی در زبان برنامه نویسی یا برنامه مورد استفاده خودتون ؛ مطرح ؛ پیگیری و مطالعه بفرمایید.

برچسب: نویسنده: محمد رضا جوادیان تاريخ: جمعه 6 مرداد 1396 ساعت: 4:09

صفحه بندی