پرش به مطلب اصلی

جلوگیری از تکرار و رزرو دوباره

هدف​

کاری کنید که جدول دو گونه رکورد را یکسره رد کند:

  • تکراری‌ها — کالای دومی با همان کد، فرد دومی با همان ایمیل.
  • رزرو دوباره — رزرو دومِ همان اتاق برای زمانی که با رزرو موجود هم‌پوشانی دارد، شیفت دوم برای همان شخص در همان زمان.

پیش‌نیازها​

  • با نقش سازنده وارد شده‌اید و راه‌حلِ جدول باز است.
  • برای قاعده‌ی بدون هم‌پوشانی، جدول دو فیلد تاریخ و زمان دارد: آغاز بازه و پایان آن.

گام‌ها​

  1. جدول را باز کنید و در منوی آن محدودیت‌ها را انتخاب کنید.
  2. یک قاعده بیفزایید:
    • بدون تکرار — سپس فیلد را انتخاب کنید. قاعده چنین خوانده می‌شود: هیچ دو رکوردی نمی‌توانند مقدار یکسان داشته باشند در کد.
    • بدون هم‌پوشانی — سپس فیلدهای آغاز و پایان بازه را انتخاب کنید و، اگر رزروهای چیزهای گوناگون می‌توانند با هم هم‌پوشانی داشته باشند، فیلدی را که می‌گوید چه چیزی رزرو شده: هیچ دو رکوردی نمی‌توانند در زمان هم‌پوشانی داشته باشند، برای هر اتاق، از آغاز تا پایان. اگر فقط یک چیز برای رزرو هست، کادر نخست را روی کل جدول بگذارید.
  3. ذخیره را انتخاب کنید.

برای برداشتن یک قاعده، سطل زباله‌ی انتهای سطر آن را بزنید و ذخیره را انتخاب کنید.

پشت صحنه چه می‌گذرد​

  • این قاعده‌ها را پایگاه داده اجرا می‌کند، نه فرم. هر طور که رکورد نوشته شود — در فرم، با درون‌برد صفحه‌گسترده، با اسکریپت، با فرایند — برقرارند، و وقتی دو نفر هم‌زمان ذخیره کنند هم برقرارند: یک ذخیره موفق می‌شود و دیگری رد. بررسی‌ای که در یک قاعده‌ی کسب‌وکار نوشته شود چنین تضمینی نمی‌دهد، چون هر دو ذخیره ممکن است پیش از نوشتنِ هر کدام «هنوز چیزی نیست» را بخوانند.
  • رکوردی که فیلدش خالی است تکراری به شمار نمی‌آید. هر تعداد رکورد می‌توانند فیلد یکتا را خالی بگذارند. اگر پرکردن فیلد هم لازم است، آن را الزامی هم بکنید.
  • بازه‌های پشت‌سرهم هم‌پوشانی ندارند. رزروی که ساعت ۱۰:۰۰ تمام می‌شود و رزروی که ساعت ۱۰:۰۰ آغاز می‌شود هر دو مجازند.
  • به کسی که ذخیره می‌کند گفته می‌شود کدام قاعده را شکسته. ذخیره‌ی ردشده می‌گوید که آن مقدار در آن فیلد پیش‌تر به کار رفته، یا که بازه با بازه‌ی دیگری هم‌پوشانی دارد، و چیزی ذخیره نمی‌شود.
  • قاعده‌ها همراه راه‌حل منتقل می‌شوند و در هر محیطی که راه‌حل به آن درون‌برد شود اجرا می‌شوند.

وقتی رکوردهای موجود قاعده را از پیش شکسته‌اند​

قاعده را فقط وقتی می‌توان افزود که رکوردهای موجود در جدول از آن پیروی کنند. اگر دو کالا از پیش کد یکسان دارند، ذخیره‌ی قاعده‌ی بدون تکرار روی کد با پیامی که نام فیلد را می‌برد رد می‌شود و جدول قاعده‌هایی را که داشت نگه می‌دارد. قاعده‌ی شما روی صفحه می‌ماند: رکوردها را اصلاح کنید و دوباره ذخیره را بزنید.

رفع اشکال​

  • انتخابگرهای بازه خالی‌اند. — جدول فیلد تاریخ و زمانِ خودش را ندارد. نخست فیلدهای آغاز و پایان را بیفزایید.
  • فیلدی که می‌خواهم پیشنهاد نمی‌شود. — فایل‌ها، تصویرها و جست‌وجوی رکورد در چند جدول نمی‌توانند بخشی از قاعده باشند: یک مقدار تکی که بشود مقایسه‌اش کرد ندارند. فیلدهای پلتفرم مانند تاریخ ایجاد هم پیشنهاد نمی‌شوند.
  • قاعده‌ای که برداشتم هنوز ذخیره‌ها را رد می‌کند. — مطمئن شوید پس از برداشتن ذخیره را زده‌اید؛ فهرست یک‌جا ذخیره می‌شود.

سناریوهای مرتبط​