جداول داده و فضای ابری

راهنمای کار با جداول داده

در این بخش با توابع کار با جداول داده آشنا میشویم. قبل از استفاده از این توابع با مراجعه به پنل توسعه دهنده جدول مورد نظر خود را اضافه و ستون های آن را مشخص کنید.

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

توجه کنید که  مدل های ارسالی و دریافتی از سرویس دیتابیس میباید از کلاس BucketCore ارث بری کنند.

 
دریافت لیست سطر ها

GameService.GetBucketItems(string bucketId, BucketOptions[] options, bool isGlobal = false){}

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

+ Constraint:  که برای اعمال Skip و Limit تا ۲۰۰ سطر بر روی نتیجه اعمال میشود.

+ FindByElement<T>: جستجو بر اساس مقادیر خاص در یک مولفه ی سطر

+ OwnerShip: جستجوی سطر هایی که توسط کاربر یا دیگر کاربران ایجاد شده است.

+ SortByElement: با مشخص کردن یک مولفه خاص در سطر نتیجه را به صورتی صعودی یا نزولی مرتب میکند.

شما میتوانید بسته به نیاز خود از یک یا چند مورد از این دستورات در جستجو استفاده کنید.

ورودی ها:

  • bucketId: ایدی جدول مورد نظر
  • BucketOptions: دستورات جستجو بر روی دیتا
 
دریافت پیشرفته لیست سطر ها

var aggregation = BucketAggregation.Of("Table_id")

.WithMatch(new MatchAggregation(new NumberMatcher("col_name", 10, NumberMatcherTypes.GraterThanOrEqual)))

.WithConstraint(new ConstraintAggregation(0))

.WithProject(new ProjectAggregation("col_name"))

.WithSort(new SortAggregation("col_name", BucketSortOrder.Descending))

.Build();

 

var data = await GameService.GetBucketItems<Test>(aggregation);

با استفاده از این تابع میتوانید جستجو های پیچیده تری را درون جدول داده انجام دهید. این تابع از دستورات زیر پشتیبانی میکند:

+ Match: شروط انتخاب سطر

+ Project: محدود سازی ستون های نتیجه

+ Sort: مرتب سازی بر اساس ستون ها

+ Constraint: مشخص کردن مقادیر skip و limit برای محدود سازی تعداد و محدوده خروجی

شما میتوانید در بخش Match از یک شرط با استفاده از MatchAggregation و با توجه به نوع ستون از NumberMatcher و ObjectMatcher استفاده کنید یا با استفاده از اوپراتور های And و Or شروط پیچیده تری را طراحی کنید. توجه کنید که تعداد کل اوپراتور ها و شروط درون Match نباید از ۱۰ عدد بیشتر باشد.

در بخش جستجوی پیشرفته دو ستون پیشفرض owner و id در تمامی بخش ها در دسترس هستند و در خروجی این تابع لیست نتیجه و تعداد کل بدون در نظر گرفتن skip و limit ارایه میشود. بدین صورت میتوانید با قرار ندادن شروط یا قرار دادن limit برابر ۰ تنها از مقدار عددی خروجی تابع استفاده کنید.

خطا ها:

  • col_notfound : درخواست به ستونی اشاره میکند که وجود ندارد.
  • operation_limited : تعداد اوپراتور ها و شروط در Match بیشتر از ۱۰ است.
دریافت سطر

GameService.GetBucketItem(string bucketId ,string itemId, bool isGlobal = false){}

برای دریافت سطر خاصی از جدول مورد نظر از این دستور استفاده میشود.

ورودی ها:

  • bucketId: آیدی جدول مورد نظر
  • itemId: آیدی سطر مورد نظر
 
ویرایش سطر

 GameService.UpdateBucketItem(string bucketId ,string itemId, TBucket editedBucket){}

برای ویرایش یک سطر مورد نظر از یک جدول از این دستور استفاده میشود. 

توجه کنید که در صورتی که کلاس ورودی تابع ویرایش به صورت nullable تعریف نشده باشد، با وارد نکردن هر پراپرتی نیز باز هم مقدار پیشفرض آن ویرایش خواهد شد. برای جلوگیری از این اتفاق تمامی پراپرتی های غیر متنی را به صورت nullable تعریف کرده تا با وارد نکردن هرکدام از آنها مقداری برای گیم سرویس ارسال نشود.

ورودی ها:

  • bucketId: آیدی جدول مورد نظر
  • itemId: آیدی سطر مورد نظر
  • TBucket: سطر جدید که قصد جایگزینی آن را دارید. توجه کنید این سطر میتواند تنها حاوی سطر هایی باشد که قصد ویرایش آنرا دارید.
 
ایجاد سطر جدید

GameService.AddBucketItem<TBucket>(string bucketId, TBucket newBucket){}

برای افزودن سطر جدید از داده به جدول مورد نظر از این دستور استفاده میکنیم.

توجه کنید که در صورتی که کلاس ورودی تابع ایجاد سطر به صورت nullable تعریف نشده باشد، با وارد نکردن هر پراپرتی نیز باز هم مقدار پیشفرض آن ارسال خواهد شد. برای جلوگیری از این اتفاق تمامی پراپرتی های غیر متنی را به صورت nullable تعریف کرده تا با وارد نکردن هرکدام از آنها مقداری برای گیم سرویس ارسال نشود.

ورودی ها:

  • bucketId: آیدی جدول مورد نظر
  • newBucket: داده های سطر جدید. توجه کنید این داده ها باید با نام و نوع ثبت شده در ساختار جدول مورد نظر همخوانی داشته باشند
 
حذف سطر

GameService.DeleteBucketItem(string bucketId ,string itemId){}

با این دستور یکی از اطلاعات سطر های جدول حذف می شود.

ورودی ها

  • bucketId: آیدی جدول مورد نظر
  • itemId: ایدی سطر مورد نظر
 
حذف سطر های یک جدول

 GameService.DeleteBucketItems(string bucketId){}

با این دستور تمام اطلاعات جدول مورد نظر حذف می شود. در صورتی که سطح دسترسی بر روی اطلاعات کاربر محدود شده باشد، تنها سطر های خود کاربر حذف خواهند شد.

ورودی ها:

  • bucketId = آیدی جدول مورد نظر
اتصال مستقیم HTTP
پلاگین موتور یونیتی