ключ / значение (общий) и вопрос о кабинете Токио (специфичный для Python tc) - PullRequest
1 голос
/ 15 января 2010

Я нахожусь в мире RDBMS уже много лет, но хочу исследовать все движение nosql. Итак, вот мой первый вопрос:

Это плохая практика иметь возможность дублировать ключи? например, адресная книга, в которой указана фамилия (скорее всего, элемент поиска?), может содержать несколько объектов. это плохая практика использовать фамилию тогда? ключ должен быть наиболее «доступным» для определения сущности? есть ли ресурсы для «лучших практик» во всем этом новом мире (для меня)?

Я заинтригован кабинетом Токио (и, в частности, интерфейсом tc), но не знаю, как перебирать различные объекты, имеющие одинаковый ключ (например, см. Выше). я могу получить только первый объект. в любом случае, заранее спасибо за помощь

Ответы [ 2 ]

1 голос
/ 05 марта 2010

Это зависит от реализации без SQL. Кассандра, например, разрешает диапазонные запросы, поэтому вы можете моделировать данные для выполнения запросов по фамилии или по полному имени (начиная с фамилии, затем имени).

Помимо этого, многие более простые хранилища значений ключей действительно требуют, чтобы вы хранили структуру списка (или такую) для многозначных записей. Возможно ли это или нет, зависит от ожидаемого количества «дубликатов» - с фамилией, я полагаю, число может быть довольно большим, поэтому во многих случаях это не похоже на идеальную модель.

0 голосов
/ 20 января 2010

В хранилище значений ключей вы не можете иметь дубликаты ключей, за ключом стоит одно значение. Чтобы иметь дубликаты ключей, вы можете использовать базу данных B + Tree в Tokyo Cabinet, в которой упорядочены значения и разрешены дубликаты (вы можете получить к ним доступ, перейдя к первому элементу с этим ключом и выполнив итерацию).

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

...