PDA

View Full Version : ثبت اطلاعات به صورت ستونی یا ردیفی؟!



koosha system
پنج شنبه 22 شهریور 1386, 16:03 عصر
بهترین راه برای ثبت 100 مورد اطلاعات در مورد یک جنس(برای مثال 100 مورد از مشخصات یک ماشین) جدول رو چطوری طراحی کنیم؟
- 100 Column و یک ردیف برای هر ماشین
- یا 100 رکورد برای هر ماشین(هر مورد از مشخصات در یک رکورد)

راه درست برای ثبت این اطلاعات کدومه؟
در ضمن تعداد ماشین ها ممکنه به 1 میلیون رکورد هم برسه.یعنی اگر از راه دوم استفاده کنیم جدول 100 میلیون رکورد داره! بعدا برای خوندن این اطلاعات دچار مشکل نمیشیم؟! برای هر بار درج مشخصات بین 100 رکورد که از بین 100 میلیون Select شده،100 بار جهش داشته باشیم؟! یک کمی سنگین نیست؟!
و راه حل چیه؟!

SYNDROME
پنج شنبه 22 شهریور 1386, 17:00 عصر
با سلام
در روش دوم شما در هنگام نمایش کمی دوچار مشکل می شود.
آیا همه فیلدهای شما پر می شود؟
اگر همه پر نمی شود می توانید فیلدها را گروه بندی کنید و در چند جدول قرار داده و به وسیله Relation ارتباط آنها را بر قرار کنید.
موفق باشید

koosha system
پنج شنبه 22 شهریور 1386, 19:51 عصر
(آیا همه فیلدهای شما پر می شود؟)
بله...
در مورد Relation میشه توضیح بدید... کار سبک تر میشه اگر از چند تا Table استفاده کنم؟! (یعنی استفاده از یک جدول بهتره یا چند جدول؟)

SYNDROME
پنج شنبه 22 شهریور 1386, 20:52 عصر
بله...
در مورد Relation میشه توضیح بدید... کار سبک تر میشه اگر از چند تا Table استفاده کنم؟! (یعنی استفاده از یک جدول بهتره یا چند جدول؟)

اگر همه فیلدها پر نمی شد می توانستید کمی کار را سبکتر کنید.
احتمالا شما با همه فیلدها کار چندانی ندارد و فقط تعداد کمی را مدام مورد استفاده قرار می دهند .
پی آن تعداد را در یک جدوا قرار دهید و بقیه که کاربر کمی دارند را در جداول دیگر قرار دهید.
حالا در جدولی که فیلدهای پر کاربرد قرار دارند فیلد کلید قرار دهید و سپس در جداول Detail مقدار فیلد کلید را در یک فیلد قرار دهید تا در مواقعی که به همه فیلدها نیاز دارید بتوانید Join بزنید.
البته دسته بندی فیلدها خیلی باید درست انجام شود تا در آینده مشکل به وجود نیاید.
موفق باشید

رضا عربلو
جمعه 23 شهریور 1386, 01:55 صبح
یبا 1000000 میلیون رکود تصادفی تست کنید.
و لی اصول data integerity استفاده از سه جدول Machineو MachineAtteributeو Atteribute را توصیه می کند.

رضا عربلو
جمعه 23 شهریور 1386, 02:16 صبح
اگر قرار است برای هر ماشین اون صد تا فیلد پر شوند روش اول بهتر است ولی اگر برای هر ماشن تعداد زیادی از فیلدها خالی می مانند روشی که در بالا گفتم بهتر است.

SYNDROME
جمعه 23 شهریور 1386, 08:29 صبح
با سلام


اگر قرار است برای هر ماشین اون صد تا فیلد پر شوند روش اول بهتر است

ولی به این هم دقت کنید که اکثر این فیلدها پر می شود ولی همیشه استفاده نمی شود و فقط تعداد محدوددی از آنها همشیه مورد استفاده قرار می گیرد.
پس بهتر است برای سبک کردن عملیات باز هم از روش دوم استفاده شود.
موفق باشید

koosha system
جمعه 23 شهریور 1386, 16:26 عصر
مثلا cloob.com یا orkut اطلاعات رو ذخیره می کنن؟! مشخصات فردی،علایق و ... که به 100 تا هم میرسه... ؟

این مشکل هم وجود داره که SQL Server محدودیتی در حجم هر ردیف داره و نمی شه همه ی مشخصات رو تو یک ردیف ثبت کرد...

جدول ها تعدادشون بیشتر باشه و رکوردها کم بهتر است یا جدول ها کم و رکوردها بیشتر؟ مورد اول برای باز کردن هر جدول پروسسی وجود خواهد داشت که ممکنه از مورد دوم سنگین تر بشه،درسته؟

SYNDROME
جمعه 23 شهریور 1386, 19:08 عصر
با سلام


مورد اول برای باز کردن هر جدول پروسسی وجود خواهد داشت که ممکنه از مورد دوم سنگین تر بشه،درسته؟
چون تعداد فیلدها در مورد اول بیشتر است پس در موقع نمایش نتیجه بیشتری را باید برگرداند و مثلماً زمانبر است.
موفق باشید

koosha system
شنبه 24 شهریور 1386, 18:32 عصر
مثال یک سایت دوستیابی که تعداد زیادی از مشخصات کاربر را می گیرد و در یک صفحه نمایش می دهد،بیشترین شباهت را به کار من دارد.
شما برای یک سایت دوستیابی (که 50 مورد از هر شخص رو ثبت می کنه) چی پیشنهاد میدید؟

SYNDROME
شنبه 24 شهریور 1386, 20:30 عصر
با سلام

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