z
9 ماه پیش توسط z مطرح شد
7 پاسخ

طراحی جدول در لاراول

سلام دوستان
یه وبسایت میخواستم بنویسم که شامل گروه و زیر گروه ، و هر زیر گروه شامل جدولی با هدر های مختلف داره
مثلا زیر گروه x جدولی شامل سه هدر و زیر گروه y جدولی با 5 هدر متفاوت از بقیه زیر گروه ها داره .
کاربر هم با انتخاب زیر گروه و یک عنوان دلخواه یک سری رکورد وارد جدول مختص به زیر گروه مشخص شده وارد میکنه
میخواستم بدونم راه سریع و استانداردی برای نوشتن چنین برنامه ای دارید .
ممنون میشم راهنمایی کنید .


ثبت پرسش جدید
محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 9 ماه پیش مطرح شد
0

سلام
موضوع ساده ای هست و روش های مختلفی قطعا داره
اما روش ساده و معقولش این هست که شما یک جدول برای گروه و زیر گروه ها ایجاد کنید با سه فیلد (id,group_name,parent_id) که برای تشکیل هر لول فرزندی که برای گروه ها بخایی کار میکنه و فقط گروه ریشه و اصلی رو طبق قرار داد خودت parent_id رو صفر میزاری مثلا

یک جدول دیگه هم برای هدر ها به صورت رابطه ی یک به چند ایجاد میکنی با فیلد های (id,header_name,group_id) که هر گروه میتونه هر تعداد دلخواه هدر توی این جدول داشته باشه

تا اینجا گروه و هدر انجام شد


z
تخصص : برنامه نویسی
@zr.1991 9 ماه پیش مطرح شد
0

@salar.mohammad2013
ممنون از پاسختون
گروه ها به همین روش نوشتم .
برای قسمت هدر ها هم قصد داشتم به همین روشی که فرمودید بنویسم . اما تعداد رکورد های جدول خیلی بالا میرفت
و برای قسمت اطلاعات دادن به هدر ها هم همین مشکل داشتم حجم بالای رکوردها و سخت شدن واکشی داده ها
فعلا برای قسمت هدر ها به صورت ارایه نوشتم
Id, category_id , value
فیلد value : ارایه ای از هدر ها
با این روش فقط برای هر زیر گروه یک سطر هدر در جدول هدر ها ایجاد میشه
نمیدونم این روش چه قدر میتونه درست و منطقی باشه !!!!
و احتمالا هم برای جدول داده ها هم به شکل ارایه هر
سطر سیو کنم


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 9 ماه پیش مطرح شد
0

بالارفتن تعداد رکورد ها تا چند هزار سطر هم نگران کننده نیست
اما اگر فقط و فقط نام هدر نیاز هست براتون که ذخیره بشه جایی ایرادی نداره به این شکل استفاده کنید
اماvalue در اصل میشه یک رشته که به صورت json بعدا parse میشه
اما دوس دارم توجه شما رو به این نکته جلب کنم که وقتی یک فیلد varchar تعریف کردی و مثلا گفتی 40 کاراکتر حداکثر نیاز داره
خیلی بهتر از اینه که یه فیلد text تعریف کنی و بعدا کلی رکورد داشته باشی که توش فضای کمتری رو استفاده کردی دیتابیس سنگین تری داری
ب نظر من 100 هزار رکورد varchar 50 تایی بهتر از 10 هزار رکورد text بی استفادست

جدای از این شما در ویرایش و حذف یک هدر خاص سختی بیشتری دارید ولی در حالت اول فقط همون id رو حذف یا ویرایش میکنید.


z
تخصص : برنامه نویسی
@zr.1991 9 ماه پیش مطرح شد
0

@salar.mohammad2013
پس همون روش اول درسته و بهتره ؟ برای هر عنوان هدر یک رکورد در نظر گرفته میشه .
برای اطلاعات هم همین روش پیش برم؟
Id , header_id , value


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 9 ماه پیش مطرح شد
0

یعنی هر header شما مجدد چند مقدار داره که جدول جدایی براش گزاشتید؟
اگر بله پس چطور میخواستید این مورد رو با آرایه هندل کنید ؟
اگر خیر و تک مقداری هست که باید توی همون جدول header یک فیلد دیگ بهش اضاف بشه


z
تخصص : برنامه نویسی
@zr.1991 9 ماه پیش مطرح شد
0

@salar.mohammad2013
مرسی از راهنماییتون 🙏
اول یه اشتباهی داشتم که دنبال این بودم که تعداد رکورد های جدول دیتابیس کم تر کنم !
با راهی که شما فرمودید پیش رفتم .


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 9 ماه پیش مطرح شد
0

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام