نمایش نتایج 1 تا 6 از 6

نام تاپیک: چه نوع صفت هایی درون جدول مشترک تعریف میشوند؟

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    چه نوع صفت هایی درون جدول مشترک تعریف میشوند؟

    سلام دوستان

    با در نظر گرفتن اصول نرمال سازی در sql server ، فرض کنید دو جدول "Student" و "Lesson" داریم که با هم رابطه ی چند به چند دارند و بنابراین باید جدول مشترکی ، فرضا بنام "StudentLessonLink" را هم تعریف کنیم . صفت های "زمان برگزاری امتحان" و "مکان برگزاری امتحان" را باید درون کدام یک از این جداول تعریف کنیم و چرا؟


    خودم این طور تحلیل میکنم :
    صفت "مکان برگزاری امتحان" ، مربوط به یک درس خاص هست اما مربوط به یک دانشجوی خاص ، نیست چون مشترکا خیلی از دانشجوها ، در آن مکان خاص ، برای امتحان دادن ، حاضر میشوند . مثلا 100 نفر از دانشجوها ، در آن مکان حاضر میشوند تا امتحان بدهند . بنابراین چون این صفت ، مربوط به دانشجوی خاصی (مربوط به رکورد خاصی از دانشجو) نیست ، پس این صفت ، درون جدول Lesson تعریف میشه .
    همینطور صفت "زمان برگزاری امتحان" هم در همین جدولِ Lesson ، به همین دلیل تعریف میشه .
    اما صفت "نمره" ، چون مربوط به دانشجوی خاصی هم میشه و اون نمره ، مالِ دانشجوی دیگری نیست ، پس صفت نمره ، درون جدول StudentLessonLink تعریف میشه .
    درست گفتم؟

    ===========


    همچنین اگر مثلا دو جدول بنام های "Person" و "Address" داشته باشیم که این جداول هم با هم رابطه ی چند به چند داشته باشند و بنابراین باید جدول مشترکی ، فرضا بنام "PersonAddressLink" را هم تعریف کنیم . صفت هایی مثل "استان" و "شهر" و "نشانی" و "نام آپارتمان" و "شماره واحد آپارتمان" و "شماره پلاک" و "کد پستی" را باید درون کدام یک از این جداول تعریف کنیم و چرا؟

    خودم این طور تحلیل میکنم :
    چون صفت های "استان" و "شهر" و "نشانی" ، برای شخص خاصی نیست و مشترک هست ، پس فقط در جدول Address تعریف میشن .
    همچنین صفت های "نام آپارتمان" و "شماره واحد آپارتمان" ، چون باز هم مربوط به شخص خاصی نیست و ممکن هست که مشترکا توسط چندین فرد مورد استفاده قرار بگیرند (یعنی مثلا در یک آپارتمان ، چندین فرد زندگی کنند . یا در یک واحد خاص ، چندین فرد زندگی کنند) ، پس این ها هم در جدول Address تعریف میشن .

    اما صفت های "شماره پلاک" و "کد پستی" ، چون فقط متعلق به یک شخص خاص هستند و مشترکا نمیتونند توسط چند نفر استفاده بشن ، پس این دو صفت ، درون جدول PersonAddressLink تعریف میشن .
    درست گفتم؟

    ------


    البته صفت های "شماره پلاک" و "کد پستی" ، ممکنه متعلق به شخص خاص نباشه یا در واقع بهتر بگم که چند نفر توش (به عنوان خانواده که شامل چند شخص هستند) ، زندگی کنند که در این صورت نمیدونم آیا این دو صفت را باید درون جدول PersonAddressLink تعریف کنم یا درون جدول Address ؟

    به نظر میرسه که این دو صفت (
    "شماره پلاک" و "کد پستی") هم باید درون جدول Address (به دلیل بالا ، چون متعلق به یه شخص ممکنه نباشن) ذخیره بشه .

    البته همین ارتباطات در این جدول های Person و Address و PersonAddressLink ، اگر برای سناریوی مالک ساختمان باشد ، یعنی اگر بجای جدول Person ، جدول Owner داشتیم ، در این حالت ، چون هر صفت از "شماره پلاک" و "کد پستی" ، مربوط به فقط یک شخص خاص (که آن هم مالک ساختمان هست) ، میشود و بصورت مشترک توسط چندین شخص نمیتواند استفاده شود ، پس در این سناریو ، این دو صفت را درون جدول PersonAddressLink باید ذخیره کنیم چون این اطلاعات ساختمان ، مربوط به یک شخص خاص هست (نه مربوط به چندین شخص) .

    درست گفتم؟
    آخرین ویرایش به وسیله SajjadKhati : سه شنبه 15 فروردین 1402 در 16:52 عصر

تاپیک های مشابه

  1. راهنمایی در مورد تعریف تعداد ستون های بیشتر در اکسس 2003
    نوشته شده توسط unforgiven در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 4
    آخرین پست: یک شنبه 17 بهمن 1395, 18:42 عصر
  2. سوال: متدهایی که در نوع داده ای enum تعریف شده اند چه کاربردی دارند؟
    نوشته شده توسط _programmer _ در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 20 شهریور 1395, 14:25 عصر
  3. پاسخ: 3
    آخرین پست: چهارشنبه 21 اردیبهشت 1390, 11:17 صبح
  4. سوال: یک مشکل ابتدایی با تعریف نوع داده
    نوشته شده توسط bijibuji در بخش برنامه نویسی در 6 VB
    پاسخ: 6
    آخرین پست: جمعه 16 مرداد 1388, 18:37 عصر
  5. پاسخ: 1
    آخرین پست: سه شنبه 01 اردیبهشت 1388, 20:32 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •