Модель данных или система базы данных для использования для большого трекера данных с пользовательскими тегами и полями - PullRequest
1 голос
/ 16 июля 2011

Я хочу создать приложение, которое позволяет отслеживать элементы и связанные поля.Например, я, возможно, захочу отследить, сколько кофе я выпил, и поэтому я бы создал запись о кофе и мог бы публиковать обновления, такие как 1 чашка кофе, 8 унций, 100 мг кофеина, купленного в определенном месте.и пьяный в такое время.Я также хочу отслеживать каждое обновление, чтобы я мог посмотреть каждое позже.Однако другие элементы, которые я хочу отслеживать, могут иметь совершенно разные поля (например, книги имеют названия и могут быть оценены с точки зрения удовольствия).

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

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

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

1 Ответ

0 голосов
/ 17 июля 2011

Я решил либо использовать IndexedDB (кажется абстрактным и не использует таблицы), либо иметь систему, в которой я создаю таблицы для каждого пользователя, для каждой категории. Элементы в данной категории, как правило, будут иметь одинаковые поля, поэтому для этого не должно быть слишком много потерянного пространства, и я также мог бы вести запись суммы для каждого элемента для всех числовых полей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...