У меня есть следующие настройки:
Имейте пункты CF и ключевые слова CF.
Каждый элемент имеет ноль, одно или несколько ключевых слов, хранящихся в столбцах.
Каждое ключевое слово имеет один или несколько элементов, хранящихся в столбцах.
Это выглядит следующим образом:Дизайн схемы Apache Cassandra
items { dl { name => DELL6400, keyword:1 => computer, keyword:2 => DELL, keyword:3 => topseller } hp { name => HP12345, keyword:1 => computer, keyword:2 => HP } no { name => Nokia8210, keyword:1 => phone, keyword:2 => NOKIA } } // here I store keys of the items only, // in reality I have denormalized most of items columns keywords{ computer { webpage => www.domain.com/computer , item:dl => dl , item:hp => hp } DELL { webpage => www.domain.com/dell , item:dl => dl } topseller { webpage => www.domain.com/top , item:dl => dl } HP { webpage => www.domain.com/hp , item:hp => hp } NOKIA { webpage => www.domain.com/nokia , item:no => no } phone { webpage => www.domain.com/phone , item:no => no } }
, когда я добавить новый элемент, я добавляю столбец «Веб-страница» в ключевых словах, если необходимому.
когда я Удаляя элемент, я удаление колонки «пункт: хх», а также
вопрос заключается в том, чтобы избежать «пустых» ключевые слова, например, если я удалить элемент Nokia «нет»:
keywords{ ... NOKIA { webpage => www.domain.com/nokia } phone { webpage => www.domain.com/phone } }
Я могу считать элемент ломтика: *, но из-за возможной согласованности это будет, вероятно, неправильным aproach.
Что делать, если я денормализовал столбец «веб-страницы» для каждого элемента: столбец xx? – Nick