خطای Circular Reference در کلیک ویو چیست؟ + مثال
اگر بخواهیم تعریف درستی از خطای Circular Reference در کلیک ویو داشته باشیم، باید اینگونه عنوان کنیم که:
اگر خطای Circular Reference (یا همان خطای حلقه) در ساختار داده های شما وجود داشته باشد، جداول موجود به گونه ای با یکدیگر لینک می شوند که بیش از یک مسیر ارتباطی بین دو فیلد برقرار می شود و جداول در میان یک حلقه محاصره می شوند.
به دلیل اینکه وجود این خطا در مدل داده منجربه تفسیر غلط داده ها می شود، باید تا جایی که امکان دارد از این نوع خطا پرهیز شود. نرم افزار کلیک ویو، مشکل Circular Reference را با شکستن آن حلقه انجام می دهد و این کار را با کمک جداولی انجام می دهد که به صورت دلخواه به یکدیگر اتصال پیدا می کنند.
زمانی که کلیک ویو در حین اجرا و بارگذاری اسکریپت به ساختار داده حلقه ای برخورد می کند، پنجره هشداری نمایان می شود و سپس یک یا چند جدول بدون هیچ قانون خاصی به یکدیگر متصل می شوند.
اگر در پنجره Table Viewer نگاهی به مدل داده بیاندازیم، می بینیم که این جداول با خطوط نقطه چین به یکدیگر لینک شده اند.
مثال:
داده های این مثال از سه جدول مختلف با مشخصات زیر در نرم افزار بارگذاری می شوند:
- اسامی برخی از تیم های ملی فوتبال
- باشگاه های فوتبال برخی از شهرها
- شهرهای برخی از کشورهای اروپایی
این ساختار داده زیاد مناسب نیست، به این دلیل که نام فیلد Team برای دو هدف و نگاه متفاوت استفاده شده است؛ یکی برای تیم های ملی (NationalTeams) و دیگری برای باشگاهی محلی(Clubs). این ساختار داده و اینگونه جدول بندی، منجربه ایجاد یک وضعیت منطقی غیرممکن می شود.
هنگامی که این جداول در کلیک ویو بارگذاری می شوند، کلیک ویو تشخیص می دهد که کدام یک از اتصالات بین داده ها کم اهمیت تر است و همان جداول را در زمره ی جداول Circular در نظر می گیرد.
پنجره Table Viewer نحوه اتصال بین داده های این جداول را نشان می دهد:
می بینیم که وجود فیلدهای هم نام و مشترک باعث بوجود آمدن لینک های نامربوط شده و مشکل Circular Reference (حلقه) را بوجود آورده است.
حل مشکل Circular Reference در کلیک ویو:
زمانی که خطای Circular Reference در کلیک ویو اتفاق می افتد، بایستی به پنجره ویرایشگر اسکریپت ها (Edit Script) مراجعه کرد و به یکی از فیلدهایی که در جداول مختلف نام مشابه و یکسان دارد، نام منحصر به فرد دیگری را اختصاص داد.
روش کار در این مثال به این صورت است:
- پنجره ویرایشگر اسکریپت را باز کنید.
- در میان فیلدهای دستور Load، یکی از فیلدهایی که نام آن در جداول تکرار شده را انتخاب کرده و آن را ویرایش می کنیم. در این مثال به سراغ جدول Cities می رویم و نام فیلد Team را به LocalClub تغییر می دهیم. این تغییر به این صورت در دستور Load نوشته می شود:
LOAD City, Team as LocalClub
- اسکریپت را Reload کنید.
در حال حاضر تمام جداول با شکلی منطقی به یکدیگر متصل هستند و دسترسی به داده ها براحتی امکان پذیر است. در این مثال، وقتی که کشور ایتالیا انتخاب شود، تیم ملی مربوط به آن، شهرهای کشور ایتالیا و درنهایت باشگاه های این کشور نیز انتخاب می شوند.
حال اگر پنجره Table Viewer را باز کنید، لینک اصلاح شده و رابطه ای منطقی بین جداول را خواهید دید. در این آموزش تلاش کردیم به طور خیلی خلاصه خطای حلقه در کلیک ویو را برای شما شرح دهیم. در صورتی که نظری درباره این مقاله دارید، در قسمت دیدگاه ها ما را از نظرات خودتان مطلع کنید.
دیدگاهتان را بنویسید