انتخاب ساختار مناسب در یک collection

پرسیده شده
فعالیت 1077 روز پیش
دیده شده 276 بار
0

سلام
فرض کنیم ما داریم یکسری اطلاعات در mongo یا elasticsearch  ذخیره  میکنیم  
تعداد این object   بسیار زیاد هستش در اولین مرحله 5000 هزار هستش و فیلد های داخل object هم ممکنه در طول توسعه پروژه زیاد بشه
ما  تعداد زیادی  get در یک ثانیه  در این collection یا index داریم و همچنین edit فیلد های زیادی داخل object  و ممکنه تعداد زیادی delete هم در آینده داشته باشیم
به فرمت زیر نگاه کنید 
کدوم فرمت در این حالت مناسب هستش ؟ و چرا؟
فیلد id یکتا هستش و به هیچ عنوان ما دو تا object با یک id نداریم مثل id که در mysql هستش
هیچ وقت دو تا object مقدار id برابر با btn-1 نمیشه
اکثر جستجو ما در object های  این collection یا index با id هستش ولی ممکنه با فیلدهای دیگه ای هم بخواهیم جستجو کنیم

 

[
  {
    "id": "btn-1",
    "filed_1": "value_1",
    "filed_2": "value_2",
    "filed_3": "value_3",
    "filed_4": "value_4",
    "filed_5": "value_5"
  },
  {
    "id": "btn-2",
    "filed_1": "value_1",
    "filed_2": "value_2",
    "filed_3": "value_3",
    "filed_4": "value_4",
    "filed_5": "value_5"
  },
  {
    "id": "btn-3",
    "filed_1": "value_1",
    "filed_2": "value_2",
    "filed_3": "value_3",
    "filed_4": "value_4",
    "filed_5": "value_5"
  },
  {
    "id": "btn-4",
    "filed_1": "value_1",
    "filed_2": "value_2",
    "filed_3": "value_3",
    "filed_4": "value_4",
    "filed_5": "value_5"
  },
  {
    "id": "btn-5",
    "filed_1": "value_1",
    "filed_2": "value_2",
    "filed_3": "value_3",
    "filed_4": "value_4",
    "filed_5": "value_5"
  },
  ...
]

============================================================

{
  "btn-1": {
    "filed_1": "value_1",
    "filed_2": "value_2",
    "filed_3": "value_3",
    "filed_4": "value_4",
    "filed_5": "value_5"
  },
  "btn-2": {
    "filed_1": "value_1",
    "filed_2": "value_2",
    "filed_3": "value_3",
    "filed_4": "value_4",
    "filed_5": "value_5"
  },
  "btn-3": {
    "filed_1": "value_1",
    "filed_2": "value_2",
    "filed_3": "value_3",
    "filed_4": "value_4",
    "filed_5": "value_5"
  },
  "btn-4": {
    "filed_1": "value_1",
    "filed_2": "value_2",
    "filed_3": "value_3",
    "filed_4": "value_4",
    "filed_5": "value_5"
  },
  "btn-5": {
    "filed_1": "value_1",
    "filed_2": "value_2",
    "filed_3": "value_3",
    "filed_4": "value_4",
    "filed_5": "value_5"
  },
  ...
}

 


 

فایل پیوست

محسن محمدخانی
محسن محمدخانی

29 اردیبهشت 00

0
حذف شده

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

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

1 خرداد 00