مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

آموزشگاه برنامه نویسان

طراحی یک جدول با 40 ستون باعث ایجاد حجم زیاد نمیشود ؟

چهارشنبه, 22 آذر 1396 00:54

طراحی یک جدول با 40 ستون باعث ایجاد حجم زیاد نمیشود ؟

درود ,

در بخش از دیتابیسی فروشگاهی که طراحی کردم  جداول رنگ های یک محصول رو طوری طراحی کردم که تعداد تعداد ستون های اون 40 ستون شده , (دلیل این کار و هدفم ازین کار این بوده که وقتی برای یک محصول چند تا رنگ انتخاب میشه بجای ایجاد چند سطر فقط یک سطر ایجاد بشه )

طراحی طوری هست که بجز ستون Id و ستون ProductId که آی دی محصول هست بقیه فیلد (ستون )ها  نام  رو اسم رنگ ها قرار دادم از نوع Bit  و با True و False مقدار میگیرن و مشخص میشه که اون رنگ برای یک محصول  انتخاب شده یا نه.

طراحی این جدول رو در پنل مدیریت و نمایش اطلاعات یک محصول انجام دادم  و مشکلی نداشت ,

فقط الان برام سوال پیش اومده که :

- طراحی یک جدول با تعداد 40 ستون روش اصولی تریه ؟

(مزیتش اینه که تعداد سطر های کمتری ایجاد میشه !)

 - یا یک جدول با ستون های کم تر ؟

(معایب:  تعداد سطر های بیشتری ایجاد میشه !)

آکادمی برنامه نویسان تلگرام برنامه نویسان
چهارشنبه, 22 آذر 1396 09:37

نقل قول : طراحی یک جدول با 40 ستون باعث ایجاد حجم زیاد نمیشود ؟

سلام. طراحی شما علاوه برا اینکه غیراصولی است در سرعت هم تاثیر مثبتی نداره چه در سمت دیتابیس و چه در سمت نرم افزار. مشکل دیگر این طراحی محدود کردن تعداد رنگ ها به 40 تاست  در صورتی که ممکن است بعدا رنگ جدیدی اضافه شود. روش اصولی داشتن جدولی با سه ستون Id , ProductId , Color هست. شما نگران تعداد سطرها نباش با ایندکس گذاری مناسب می توان حتی با تعداد رکوردهای بسیار بالا سرعت مطلوب داشت.

کسانی که از این پست تشکر کرده اند :
چهارشنبه, 22 آذر 1396 10:40

نقل قول : طراحی یک جدول با 40 ستون باعث ایجاد حجم زیاد نمیشود ؟

این طراحی کاملا اشتباه است

حالا اگر یکی فقط یک رنگ داشت چی ؟

بقیه ستونها ها خالی میمونند !!!!

کسانی که از این پست تشکر کرده اند :
چهارشنبه, 22 آذر 1396 10:56

نقل قول : طراحی یک جدول با 40 ستون باعث ایجاد حجم زیاد نمیشود ؟

این مدل را میتوانید با پیاده سازی چند به چند طراحی کنید. (یک جدول برای رنگ ها یک جدول محصول و یک جدول واسط برای رنگ های محصول) 

با استفاده از این روش نه داده هرزی وجود دارد نه نیاز به 40 ستون است. 

کسانی که از این پست تشکر کرده اند :
چهارشنبه, 22 آذر 1396 11:05

نقل قول : طراحی یک جدول با 40 ستون باعث ایجاد حجم زیاد نمیشود ؟

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

البته نوع ستون ها Bit هست و فکر کنم حجم کمی میگیرن .

راستش مزیت این کار ایجاد تعداد سطر های کمتر و از طرفی حذف رابطه چند به چند بین جداول Product و  Color  و ColorProduct بود ، و کلا نیازی به جدول ColorProduct نخواهد بود.

تعداد جداول دیتابیسم زیاد بودن و بنوعی خواستم یه ترفند مثبت بکار ببرم ،

استاد موردی که خیلی منو نگران کرده اینه که فکر کنید تو فروشگاه بعد از حدود یک سال ۱۰۰۰ تا محصول درج بشه که میانین هر محصول چهارتا رنگ داره ، حالا برای همین محصولات ۴۰۰۰سطر در جدول ColorProduct ایجاد میشه ،

این مورد باعت افزایش بیرویه حجم دیتابیس نمیشه ؟و مشکل ساز نمیشه ؟

این مورد برای جدول Size محصول هم صدق میکنه .

کسانی که از این پست تشکر کرده اند :
چهارشنبه, 22 آذر 1396 11:15

نقل قول : طراحی یک جدول با 40 ستون باعث ایجاد حجم زیاد نمیشود ؟

مهندس علیزاده از طراحی جدول Color برای تعرف رنگ ها  و ColorProduct برای اختصاص دادن چند رنگ به یک محصول خبر دارم ,

این روزش برای مثلا 1000 محصول که مثلا میانگین چهار رنگ داشته باشند 4000 سطر ایجاد میکند و همین مورد برای جدول سایز هم وجود دارد.

این مورد باعث افزایش حجم دیتابیس نمیشود؟

کسانی که از این پست تشکر کرده اند :
چهارشنبه, 22 آذر 1396 11:18

نقل قول : طراحی یک جدول با 40 ستون باعث ایجاد حجم زیاد نمیشود ؟

در واقع روش شما هم همونه ، ۴۰ ستون و ۱۰۰۰ سطر میشه همون ۴۰ هزار
کسانی که از این پست تشکر کرده اند :
چهارشنبه, 22 آذر 1396 11:29

نقل قول : طراحی یک جدول با 40 ستون باعث ایجاد حجم زیاد نمیشود ؟

خیر این کار عمری عادی است. همچنین زیاد بودن تعداد جدول ها نشانه ضعف نیست (طراحی هایی دیدم که حداقل 200 جدول در بانک وجود دارد)

نگران داده های زیاد نباشید نگران داده های هرز باشید ( 4000 در تعداد داده های عددی بزرگی نیست)

اصولا در طراحی های Enterprise قبل از استفاده از بانک یا فرآیند خاصی، قبل از نیاز های آن پروژه را تشخیص داده بر اساس آن از فرآیند ها استفاده می کنند.

برای سیستم هایی که داده کلان دارند از NoSql و فرآیند های مشابه آن استفاده می کنند.

این که کوئری زدن برروی یک جدول با 4000 رکورد تاثیری بر عملکر دارد صحیح است اما با روش های مختلف می شود این تاثیر را کم کرد

کسانی که از این پست تشکر کرده اند :
چهارشنبه, 22 آذر 1396 11:36

نقل قول : طراحی یک جدول با 40 ستون باعث ایجاد حجم زیاد نمیشود ؟

تشکر بابت نظرات ، با توجه به هم نظر بودن همه در اشتباه بودن این روشن و توضیحاتی که دادین من قانع شدم که این جدول رو حذف و از همون روش چند به چند استفاده خواهم کرد. تشکر بابت راهنمایی هاتون.
کسانی که از این پست تشکر کرده اند :

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید