Couchbase моделирование отношений многие ко многим - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь выяснить, как смоделировать мои данные - в отношении многие ко многим в Couchbase (я тоже использую n1ql).

У меня есть две сущности: Клиенты и Проекты .

  • Клиент - каждый клиент может создавать множество проектов - примерно 2000 проектов в год.
  • Проект - каждый проект может принадлежать множеству клиентов (максимум 50 клиентов).

Я подумал, может быть, создать новый документ для каждого сайта / проекта, но в соответствии с документацией Couchbase по моделированию данных:

Как правило, это не очень хороший подход в Couchbase Server, поскольку ссылки и встраивание обеспечивают большую гибкость избегайте создания этого избыточного документа.

Как хранить данные?

Любые предложения / советы будут полезны.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Эта цитата ссылается на "документы отношений".В вашем случае это будет означать, что у вас будет клиентский документ, документ проекта и какой-то документ сопоставления клиент-проект.Я бы согласился, что документ только для отношений не будет полезным подходом, если только вы не намерены хранить много информации об этих отношениях .

На основеинформацию, которую вы предоставили, я бы порекомендовал хранить документы клиента и документы проекта.Основываясь на числах, я бы сказал, что проекты должны содержать список идентификаторов документов клиента.

Что-то вроде:

key client::001
{
   "name" : "Clienty McClientface",
   "address" : "123 main st",
   "foo" : "bar",
   "type" : "client"
}

key project::001
{
    "name" : "Alan Parsons Project",
    "startDate" : "2012-09-27",
    "clients" : [
        "client::001",
        "client::007",
        "client::123",
        // ... etc ...
    ],
    "type" : "project"
}

Но в целом, это зависит от того, каковы ваши варианты использованиядля чтения, записи, запросов.Ни одна модель данных не подойдет для каждого варианта использования.

0 голосов
/ 25 июня 2018

Пожалуйста, используйте следующий URL для решения вышеуказанной проблемы: https://developer.couchbase.com/documentation/server/current/data-modeling/modeling-relationships.html

...