2010-10-18 3 views
0

Мне интересно, может ли следующий сценарий поддаться CouchDB? Я создаю веб-приложение для флэш-карт. Пользователи могут создавать карточки (вопрос с одной стороны, ответ на другой). Авторы Flashcard и другие пользователи могут пометить карточки с ключевыми словами/фразами. Пользователи могут извлекать/генерировать виртуальные стопки карточек на основе тегов, включая поддержку булевого поиска (tagA AND tagB NOT tagC OR tagD). БД будет хранить карты (очевидно), а также «документы» для пользователей, теги и потенциально виртуальные стопки карточек. Я прочитал другие вопросы о том, что касается мечения внутри CouchDB, но мне интересно, будет ли следующее работать или писать интенсивнее ... (1) Документы карты содержат массив JSON строк тегов, назначенных этой карте, (2) Документы тегов содержат массив JSON карт используя тег, (3) документы тегов также имеют элемент для хранения кол-ва карт с использованием этого тега; (4) всякий раз, когда создается новая карта или добавляется тег на карту, связанный идентификатор карты также добавляется в документ тега и элемент CardCount документа тега увеличивается. (5) Создаются постоянные виды карточек, индексированных идентификатором карты, и тегов, индексированных по тегам. Если я знаю идентификатор карты, я могу быстро найти документ и быстро получить список связанных тегов. Если мне дана строка тега, я могу быстро найти документ тега, а затем получить список идентификаторов карт с помощью тега. Для более подробного логического поиска я могу получить список идентификаторов карт для каждого тега в логическом поиске, а затем выяснить соединение/пересечение/etc этих наборов на клиенте. Это кажется разумным? Я знаю о возможности полнотекстового индексирования с использованием Lucene, но хотел бы избежать этого, если это возможно. Благодарю.Схема тегов для CouchDB. Будет ли это работать?

ответ

1

Я не вижу веских оснований для того, чтобы усложнить ситуацию - просто создайте документ на карту и добавьте теги к этим документам по ходу дела. Создайте несколько сохраненных представлений, чтобы подсчитывать/показывать теги и их номер использования, когда вам это нужно.

таким образом, вам нужно всего лишь:

карточки документа:

вопрос ответ теги []

просмотров:

шоу Информационная карта шоу (возможно, самый популярный) теги показать карточки на бирку

A если ваши документы правильно структурированы, вам не нужен полный текстовый поиск для обработки всего.

 Смежные вопросы

  • Нет связанных вопросов^_^