ورود

نسخه کامل مشاهده نسخه کامل : رابطه جدول با خودش



shotok
20-10-2012, 11:24
بسم الله الرحمن الرحيم با سلام هر ابزاري شامل تعدادي ابزارهاي جانبي مي باشد. به نظر ميرسد ابزار با ابزار رابطه دارد؛ چگونه ميتوان اين حالت را در پايگاه داده پياده سازي کرد؟ با سپاس فراوان

senaps
20-10-2012, 15:56
بسم الله الرحمن الرحيم با سلام هر ابزاري شامل تعدادي ابزارهاي جانبي مي باشد. به نظر ميرسد ابزار با ابزار رابطه دارد؛ چگونه ميتوان اين حالت را در پايگاه داده پياده سازي کرد؟ با سپاس فراوان





سلام....
وقتی همه تو یه جدول هستن، نیازی نیست که رابطه بینشون برقرار بشه... اما سوال پیش میاد که جدول های شما نرمال و بهینه هستن یا نه؟!
ایا شما مثلا برای ثبت اداپتور برق یک وسیله، که 500 تا از اون وجود داره، 500 تا اداپتور برق هم به جدول یا جدول هاتون اضافه میکنین یا یه بار اداپتور رو اضافه میکنین و بعد مدل یا تعدادش رو ثبت می‌کنین؟!!

خود جدول نیازی به برقراری ارتباط با خودش نداره! و میشه معمولا از شرط ها استفاده کرد... ولی بهینه نیست این روش!

shotok
21-10-2012, 08:34
بسم الله الرحمن الرحيم با سلام از پاسخي که داديد ممنون با اين تفاسيري که فرموديد چه جوري ميشه تشخيص داد کدوم ابزار جزء تجهيزات جانبي ابزار ديگر است؟ باتشکر

senaps
21-10-2012, 13:47
سلام...
عرض شود که فرض کنیم کالای شما کد 1 رو داره....
حالا تو جدول دیگه‌ای که ابزار جانبی هست، هرکدومشون که کد شناسایی 1 رو داشته باشن، برا اونه... یعنی جداول اینجوری میشن:
جدول ابزار:
نام ابزار کد ابزار(کلید جدول میشه!) ای‌دی(که یه شمارنده‌میباشه!!) سایر مشخصاتی که ذخیره میکنین!
جدول وسایل جانبی:
یه ای‌دی( که شمارنده باشه!) کد ابزار(کلید خارجیه و از جدول ابزار میاد!) نام وسیله کد وسیله(میشه اضافه کرد اگر لازم بود!) و سایر مشخصاتی که لازم دارین....

حالا موقع جست‌و جو، میتونین چک کنین تمام وسایل جانبی‌ای که کد ابزارشون فلان عدده، نشون داده بشن!

البته این جدول باید حسابی تحلیل بشه! ولی خوب همینجوری هم میشه پیاده‌اش کرد اگر برای کار دانشجویی چیزی هستش.... ولی برای پروژه های حسابی که کلی انواع و اقسام گزارش لازمه، باید جداول رو بسیار بسیار دقیق و حساب شده ایجاد کرد و تحلیل کرد...

shotok
21-10-2012, 21:04
با سلام نام وسيله دوباره در جدول وسايل جانبي تکرار ميشود؟ قبلا در ابزار ثبت شده است. چون از همون جنسه. با سپاس

senaps
21-10-2012, 21:55
با سلام نام وسيله دوباره در جدول وسايل جانبي تکرار ميشود؟ قبلا در ابزار ثبت شده است. چون از همون جنسه. با سپاس





سلام....
خیر دوست عزیز.... نام وسیله تو جدول وسایل و نام وسیله‌ی جانبی توی جدول وسایل جانبی ثبت میشه فقط.... تنها در کنار نام هر وسیله‌ی جانبی، کد وسیله‌ی اصلی رو میذاریم که بشه سرچشون کرد!

shotok
23-10-2012, 10:07
با سلام چرا ميفرمائيد فيلد هاي ابزارهاي جانبي در جدول ابزار جانبي بايد ذخيره شود؟ به نظرم منطقي ست که ويژگي هاي تمام ابزار در همون جدول ابزار تعريف شود چون از يک نوع موجوديت هستند. و معين کنيم ابزار هاي جانبي هر ابزار کدام ها هستند. با سپاس

senaps
23-10-2012, 10:23
سلام
بستگی داره! اگر ابزار های جانبیمون زیاد و در انواع متعددی باشن ولی برای یه وسیله‌ی مخصوص( مثلا، پایه و اداپتور برق و رول کاغذ برای یک دستگاه کارت خوان فروشگاهی...) بهتره اینا جدا باشن! چون رول کاغذ رو یه بار وارد میکنی و هزار بار برای هزار وسیله استفاده اش میکنی!!!!
در غیر اینصورت، به قول شما میشه کلا یه جدول بهشون داد و نهایتا لازم میشه یه فیلد ایجاد بکنیم برای وصل کردن اینا که مثلا اونایی که ابزار جانبی هستن، یه مقدار بولین برای مشخص شدن ابزار جانبی بودن داشته باشن و یه مقدار که کد وسیله‌ی اصلیشون رو براشون مشخص میکنه...

shotok
26-10-2012, 22:24
با عرض سلام و ادب از پيگيريتون واقعا ممنون بحث اينجاست که نمي توان نوع جانبي يا اصلي بودن اون و کد وسيله اصليش رو تعيين کرد؛ چراکه يک وسيله در عين اينکه n وسيله جانبي دارد ميتواند وسيله جانبي n وسيله اصلي ديگر هم باشد. با سپاس

senaps
27-10-2012, 00:10
بسم الله الرحمن الرحیم
سلام....
عرض شود که در این حالت، شخصا می‌اومدم یه جدول در نظر میگرفتم که 3 قسمت id، کد خود وسیله و کد وسیله‌ی جانبیش رو ذخیره کنه....
تمامی وسایل رو توی یه جدول اصلی ذخیره میکردم و بعد، با استفاده از جدول دوم، میتونستم بگم هر وسیله، چه کدهایی وسایل جانبیش میباشن....

مثلا داده ها رو در نظر بگیرید:
جدول اول:




id

name

code



1

وسیله‌ی1

1001



2

وسیله2

1002



3

وسیله3

1003



4

وسیله4

1004




جدل 2:

subObj code id
1 1001 1002
2 1001 1003
3 1002 1004
4 1003 1004


id

code

subObj



1

1001

1002



2

1001

1003



3

1002

1004



4

1003

1004




فیلد های بولد، کلید میباشن!
در اینجا، وسیله‌ی 2 خودش ابزار جانبی وسیله‌ی 1 هستش و همزمان، وسیله‌ی4 ابزار جانبی خودشه...
در این حالت، شما باز میتونید گزارش گیری دو جهته‌ی ؛ چه وسایلی وسیله‌ی جانبی فلان ابزار هستن!؛ یا ؛ فلان ابزار، چه وسایل جانبیی داره!؛ رو داشته باشید...

البته شاید رویکرد تک جدولی شما بهتر باشه... ولی شخصا معمولا جداول رو بیشتر میکنم که مجبور نباشم داده ها رو چند بار وارد کنم! شما در اینجا میتونین هزار وسیله‌ی مختلف رو وارد جدول اول کنین که توش قیمت و تعداد و تاریخ خرید و .... رو نیگر دارین و جدول دوم، تخصصا کارش فقط مشخص کردن ابزار جانبی وسایل باشه...