2016-04-24 5 views
0

Я не очень хорош на английском!
В Cassandra 3.5 есть таблица, в которой все столбцы строки не появляются одновременно. Уникальной таблицей является несколько столбцов, которые уникальны в строке вместе, но некоторые из них сначала являются нулевыми. Я не могу установить их первичный ключ из-за нулевого значения. Я идентифицирую столбец с именем id и типа uuid в Кассандре.Как создать уникальный ключ, кроме первичного ключа в кассандре?

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

ответ

2

Вы не можете. Это не реляционная БД. Используйте кластеризацию и/или разделы для добавления уникального ограничения.

См this answer

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

В принципе, я бы рекомендовал использовать Кассандру, как это есть на самом деле: Хранилище данных. И найдите способ реализовать свою бизнес-логику там, где она принадлежит: в вашем коде.