Подтвердить что ты не робот

Каковы альтернативные способы моделирования отношений M: M в Кассандре?

Рассмотрим отношение M: M, которое должно быть представлено в хранилище данных Cassandra.

Какие варианты моделирования M: M доступны? Для каждой альтернативы, когда это предпочтительнее? Какие варианты моделирования M: M вы внесли в свои проекты Cassandra?

4b9b3361

Ответ 1

Вместо того, чтобы использовать таблицу соединений так, как вы бы с rdbms, у вас будет один ColumnFamily, содержащий строку для каждого X и список связанных с ним Ys, тогда CF, содержащий строку для каждого Y и список каждый X, связанный с ним.

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

Ответ 2

Кассандра по дизайну - это база данных ключевых значений, поэтому для достижения M: M есть два способа сделать это.

  • Де-нормализовать данные, чтобы каждое отношение корабля должно дублировать данные.

    т. x- > y (значение) и x- > z (значение) и a- > y (значение)

    y следует сохранить для x и a

    Вот как это должно быть сделано, поскольку это дает вам силу базы данных

  • Сохраните ссылку для реляционного ключа как значение.

    x- > y (key) и x- > z (Key) и a- > y (Key)

    Итак, если вам нужно x со значением y, это должно быть две операции, get x, которая даст вам значение y. Затем запустите y в отдельной операции.

Cassandra не является РСУБД, поэтому не обманывайте себя традиционным способом выполнения, опуская значения и определяя отношения.