وقتی جدولی را ذخیره میکنید چه میشود
هدف
بدانید پلتفرم در همان لحظهای که جدول یا فیلدی را ذخیره میکنید چه میکند، تا بدانید تغییرتان از چه زمانی زنده است و اگر رد شد چه باید کرد.
پاسخ کوتاه
ذخیره کردن یعنی اعمال کردن. جدولی بسازید و جدول دادهٔ آن پیش از بازگشت صفحه در این محیط وجود دارد. فیلدی بیفزایید و ستونش وجود دارد. چیزی برای فشردن پس از آن نیست، چیزی در انتظار نمیماند و چیزی مرحلهبندی نمیشود: آنچه در جدولها میبینید همان است که در پایگاه داده وجود دارد.
پشت صحنه چه اتفاقی میافتد
هر ذخیرهای که شکل یک جدول را تغییر میدهد همین سه گام را اجرا میکند:
۱. تعریف اعتبارسنجی میشود در برابر شِمای موجودیت پلتفرم — همان وارسیای که اعمال میشود، چه تعریف از طراح آمده باشد، چه از فایل راهحلی واردشده، و چه از یک دستیار هوش مصنوعی. ۲. جدول داده ساخته یا گسترده میشود در ناحیهٔ دادهٔ ایزولهٔ این محیط، با یک ستون برای هر فیلد و یک ارجاع (کلید خارجی) برای هر جستجوی رکوردی که جدول مقصدش وجود دارد. ۳. تریگر ممیزی همتراز میشود با تنظیم ممیزی جدول، پس روشن یا خاموش کردن ممیزی بیدرنگ اثر میکند (به «فعال کردن ممیزی روی یک موجودیت» نگاه کنید).
تنها دادهٔ این محیط دست میخورد. محیط دیگر وقتی این تغییر را میگیرد که راهحل را در آن وارد کنید، هرگز خودبهخود.
یک فرم و یک نما همراهش میآید
ساختن جدول، یک فرم (Information) و یک نما (All و سپس نام جمع جدول) هم میسازد که هر دو فیلد اصلی را دارند. این دو هستند تا جدول بیدرنگ در یک برنامه قرار بگیرد.
آنها یک بار ساخته میشوند، هنگام ساختن جدول. فیلدی که بعداً اضا فه کنید خودبهخود روی آنها نمینشیند: فیلد و ستونش وجود دارند، اما تا آن را روی فرم و در نما نکشید کسی آن را نمیبیند. این عمدی است، چون فرمی که کسی چیده است نباید با هر فیلد تازه زیر دستش تغییر کند.
اگر تغییر اعمالشدنی نباشد
ذخیره رد میشود، نه اینکه نیمهکاره بماند. وقتی ستون یک فیلد ساخته نشود، خودِ فیلد هم دوباره برداشته میشود — پس فیلدی که در فهرست فیلدها میبینید همیشه ستونی پشت خود دارد. هرچه خطا بگوید، چیزی در حالت نیمهاعمالشده باقی نمانده است و میتوانید با خیال راحت مشکل را برطرف کنید و دوباره ذخیره کنید.
تغییر اندازهٔ یک فیلد، تغییر یک ستون واقعی است
چون ستون از پیش وجود دارد، تغییر بیشینه طول یک فیلد متنی تغییری در پایگاه داده است:
- بلندتر کردن همیشه کار میکند.
- کوتاهتر کردن شکست میخورد اگر رکوردی مقدار بلندتری داشته باشد. پلتفرم بهجای بریدن دادهٔ کسی، تغییر را رد میکند. نخست رکوردهای معترض را کوتاه یا پاک کنید، سپس تغییر را انجام دهید.
عیبیابی
- «The environment … does not exist.» — ناحیهٔ دادهٔ محیط تأمین نشده است. نخست محیط را بسازید؛ یک جدول به جایی برای زیستن نیاز دارد.
- «The entity definition is not valid: …» — تعریف در اعتبارسنجی شِما رد شده است. فیلد گزارششده را اصلاح کنید و دوباره ذخیره کنید.
- «برخی رکوردها در … مقداری دارند که در اندازهٔ جدید جا نمیشود.» — فیلدی را کوتاهتر از چیزی کردهاید که از پیش در آن ذخیره شده است. چیزی تغییر نکرد. اندازهٔ فعلی را نگه دارید، یا رکوردهایی را که مقدار بلندتر دارند ویرایش کنید و دوباره امتحان کنید.
- «Failed to provision the entity table: …» — خطایی در سطح پایگاه داده رخ داده است. دوباره تلاش کنید، و اگر پابرجا ماند با یک مدیر تماس بگیرید.
- فیلدی اضافه کردم و روی فرم نیست. — فیلدها خودبهخود روی فرمها و نماهای موجود قرار نمیگیرند. فرم و نما را باز کنید و فیلد را به درونشان بکشید.
- پیشتر دکمهٔ انتشار را میفشردم و اکنون پیدایش نمیکنم. — آن دکمه، همراه با «انتشار سفارشیسازیها»، برداشته شده است. هر دو همان شِمایی را اعمال میکردند که ذخیره از پیش اعمال میکند.
سناریوهای مرتبط
- ساخت یک موجودیت.
- افزودن یک فیلد به یک موجودیت.
- ساخت یک ارتباط میان موجودیتها.