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

1

В течение многих лет я был в мире РСУБД, но хочу изучить все движение nosql. так вот мой первый вопрос:

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

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

Теги:
tokyo-cabinet

2 ответа

1
Лучший ответ

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

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

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню