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

نام تاپیک: استفاده از روال‌های مشترک ولی موردی در جداول

  1. #1
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,266

    استفاده از روال‌های مشترک ولی موردی در جداول

    فرض کنیم پروژه‌ای شامل 100 جدول است و هرجدول حدود 1000 ردیف دارد و تمامی اطلاعاتی که در جدوال ثبت می‌شوند بدلیل ماهیت اون کسب و کار ممکن است به ازای هر ردیف توضیحاتی توسط کاربر در آن درج شود. این ستون می‌تواند یک نام مانند Comment و یا Remark داشته باشد.

    سوال: آیا پیاده سازی این روش اشکال فنی دارد؟

    اگر بجای ایجاد ستون Comment و یا Remark در تمامی جدوال که احتمالا 90 درصد ردیف‌ها نیازی به آن ندارند و در تمامی جداول null باقی خواهند ماند، یک جدول با نام Comment ایجاد کنم و ستون‌های آن بصورت زیر باشد:

    Id, TableName, TableId, Comment

    اگرچه که امکان ایجاد رابطه با تمام جدوال برای TableId وجود ندارد اما در زمان واکشی داده‌ها می‌توان در مدل خروجی (Output Model) یک List از Commentهای متناظر با جدول واکشی شده قرار داد تا برنامه سمت Client از آن استفاده کند.

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,626

    نقل قول: استفاده از روال‌های مشترک ولی موردی در جداول

    خب این همون روش خیلی قدیمی child/extension table هست
    که وقتی مثل اینجا فیلدهایی دارین که بیشترش null هست (sparse data)
    یا ساختار سلسله مراتبی دارن (hierarchical) استفاده میشه - این مورد شما فقط یک level داره البته
    و این که عمومی تر از جدول فرزند عادی هست.

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

    ولی Id, TableName, TableId, Comment گویا باید اینجوری باشه: Id, TableName, RecordId, Comment

    ====
    الان 10 سالی هست که MS SQL مستقیما فیلد نوع sparse رو پشتیبانی میکنه،
    که بد نیست اون رو هم یک نگاهی بندازین.

  3. #3
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,266

    نقل قول: استفاده از روال‌های مشترک ولی موردی در جداول

    ممنون بابت راهنمایی و اصلاح نامگذاری. موردی که فراموش کردم در متن اولیه به آن اشاره کنم:

    یکی از دلایل اصلی، امکان درج چندین توضیح برای یک ردیف است. این توضیحات به همراه اطلاعاتی مانند نام کاربری که توضیح را ثبت کرده به همراه زمان ثبت، برای کلاینت ارسال میشه و قراره که همان کاربر بتونه توضیح را اصلاح و یا حذف کنه. اگر بخوام به ازای هر جدول یک جدول Comment جداگانه بسازم (البته راه حل دیگه‌ای بلد نیستم) باید دقیقا 100 جدول دیگه به بانک اضافه کنم: TableA, TableAComments و TableB, TableBComments و... ولی پیاده سازی یک جدول سراسری برای جمع آوری Commentهای یک پروژه ضمن اینکه تعداد جداول و کلاس‌های تولید شده در پروژه را بشدت کاهش میده، مدیریت این ویژگی از نظر پیاده سازی هم برام ساده‌تر میشه و تغییرات تنها برای یک جدول و Handlerهای مربوط به آن اعمال خواهد شد.

    البته یک پاسخ در لینک زیر دریافت کردم:
    https://www.dntips.ir/questions/details/28#comment-72

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

  1. دستگاه بسته بندی مواد غذایی آجیل / دستگاه پرکن و بسته بندی پودر
    نوشته شده توسط khonehman در بخش بک لینک (Back Links)
    پاسخ: 0
    آخرین پست: سه شنبه 13 تیر 1402, 18:25 عصر
  2. پاسخ: 4
    آخرین پست: یک شنبه 26 مرداد 1399, 01:59 صبح

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

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