۵ مرحله برای طراحی یک دیتابیس با ساختار مناسب !!
طراحی دیتابیس اولین مرحله شروع یک پروژه میباشد که میتوان گفت یکی از اصلی ترین قدم ها در روند طراحی یک اپلیکیشن است .
در این مرحله میبایست کلیه موجودیت های که در اپلیکیشن نیاز است را حتما در نظر بگیریم برای مثال برای یک سایت فروشگاهی ما نیاز به جدول محصولات داریم اگر شما بدون این که اهمیت دهید به جز جدول محصولات به جدول های وابسطه دیگری هم نیاز داریم کار را شروع کنید حتما در روند طراحی و پیاده سازی به مشکلاتی برخواهید خورد پس بهتر است در اول تمامی موجودیت ها را تجزیه و تحلیل کنید و سپس شروع به پیاده سازی کنید .
اما برای شروع پیاده سازی از کجا شروع کنیم ؟
من برای پروژه هایی که خودم پیاده سازی میکنم , اگر مشاهده کنم که این اپلیکیشن چیزی هست که تا حالا من باهاش مواجه نشدم و خیلی آشنایی با موجودت هایی که داره ندارم ;
در مرحله اول
باید شناخت کافی برای اینکه اون اپلیکیشن چه کاری میخواد انجام دهد را متوجه شوم , اگر دقیق متوجه نشوم که آن اپلیکیشن چه کاری رو یخواد انجام بده رو سعی میکنم اول متوجهش بشم و اگر سوالی دارم تو همین مرحله اول حتما بپرسمش
در مرحله دوم
کاری که من باهاش راحت هستم این هست که اول جدول های کلی را روی کاغذ یا روی تخه وایت برد رسم میکنم در اینجا سعی میکنم اسم تمامی جدول ها رو حدس بزنم و اسامی آن ها را داخل یک مسطتیل رسم کنم .
در مرحله سوم
سعی میکنم بهترین رابطه رو بین جداول ایجاد کنم که هر موقع خواستم یک دیتایی که مربتط به یک سری جدول ها هست رو از این قسمت به دست بیاورم این مرحله خیلی مهم هست و اگر موقع پیاده سازی بهش توجه نشود در آینده اگر اشتباه کرده باشید باید جدول خودتون را ریدیزاین کنید که این کار اصلا پیشنهاد نمیشود .
پس به جداول و ارتباط های بینشون اهمیت زیادی دهید
در مرحله چهارم
بعد از تعیین کردن جداول و ارتباط های بینشون باید فیلد های اون رو دقیق مشخص کنید این مرحله هم از مرحله های حیاتی میباشد به عنوان مثال اگر شما جدولی با نام محصولات داشته باشید و تمامی فیلد های اون رو مشخص کنید بعد از پیاده سازی موقع ذخیر کردن اطلاعات فرض میکنیم 400 عدد محصول به سایت اضافه کردیم و کار تمام شده و موقع لانچ متوجه بشیم که ما فیلدی به عنوان موجودی انبار نگذاشته ایم این مشکل در جایی مخلف یک سایت فروشگاهی اهمیت بسیار زیادی داره برای مثال کاربر وقتی که یک محصول را به سبد خرید اضافه کرده و از آن محصول 200 عدد میخواهد درخواست دهد ممکن است ما در انبار از آن محصول بیشتر از 50 عدد نداشته باشیم اینجا هست که موقع اضافه کردن به سبد خرید باید کاربر نتواند بیشتر از 50 عدد سفارش دهد اما اگر ما اصلا این فیلد را در جدول نداشته باشیم مشکل کاملا مشخص میشود البته شایان به ذکر است که هیچ وقت برای اضافه کردن فیلد دیر نیست فقط اگر از همان اول پیشبینی شود با مشکلات کمتری رو به رو میشویم .
مرحله پنجم
در مرحله پنجم نکته قابل اهمیت دیگری که وجود دارد این هست که نام گذاری را جدی بگیریم .
اگر جداول و فیلد هایی که وردپرس از آن استفاده میکند را مشاهده کنید اهمیت این مرحله برای شما آشکار میشود برای مثال اگر بخواهیم در دیتابیس یک دیتایی را مشاهده کنیم برای مثال محصولاتی که درج شده اند را مشاهده کنیم به ذهنمان میرسد که دنبال جدولی با اسم products باشیم اما در وردپرس به این صورت نیست شما باید یا یک سرچ در گوگل انجام دهید یا هر کدام از جدول هایی که در دیتابیس هست را باز کنید و مشاهده کنید که محصولات در کدام جدول هستند باید بگویم که در وردپرس محصولات در جدول wp-posts میباشد که در این جدول یک فیلد با نام post_type وجود دارد که مشخص میکند این یک محصول است یا یک خبر یا مقاله میبینید چقدر گمراه کننده است ؟ اینجا شما نباید بگذارید که همچین مسءله ای برای شما به وجود بیاید که در آینده فراموش کنید که نام جدول محصولات کجا بوده است , نکته بعدی در همین مرحله نام گذاری خود فیلد میباشد اگر شما یک فیلدی میخواهید اضافه کنید بهتر است که از کلمات خلاصه , دارای پسوند یا پیشوند خودداری کنید این هم سبب میشود تا وقتی میخواهیم دسترسی به یک دیتا داشته باشیم آن برای ما قابل مفهوم تر و ساده تر باشد برای مثال بهتر است به جای استفاده product_title از title اسفاده کنیم طبیعی است که ما دیتا را از جدول محصولات فراخوانی میکنیم پس نیازی به بودن product نیست یک مثال هم برای خلاصه نویسی که در نظر گرفتم این است که به جای اینکه از cat_id استفاده کنیم بهتر است category_id استفاده کنیم که سریع متوجه شویم که این فیلد در عمل برای چه کاری استفاده میشود .
اگر سوالی در زمینه روند پیاده سازی دیتابیس برای پروژه دارید خوشحال میشوم سوالتون را در قسمت کامنت ها جواب بدم .
مطلبی دیگر از این انتشارات
ساخت کوتاه کننده لینک با لاراول
مطلبی دیگر از این انتشارات
نحوه فارسی سازی slug در لاراول با پکیج cviebrock/eloquent-sluggable
مطلبی دیگر از این انتشارات
لاراول دیباگبار چیست؟ (به همراه آموزش ویدیویی?) (Laravel debugbar)