Хранение шаблонов и объектно-ориентированных и реляционных баз данных - PullRequest
0 голосов
/ 21 декабря 2010

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

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

Если я должен использовать объектную базу данных, что я должен рассмотреть?В настоящее время я работаю в Python и предпочел бы работоспособную библиотеку Python, но при необходимости могу перейти на Java.

Ответы [ 2 ]

2 голосов
/ 23 декабря 2010

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

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

Я бы лично выбрал подход теории множеств.

  • Сохраняйте каждый набор предварительно скомпилированных типов контента и перекомпилируйте его при редактировании для быстрого обслуживания в отдельном месте (таблица, коллекция, каталог, что угодно)
  • Храните источники в общем месте, чтобы упростить перестройку различных типов контента (исходный формат на самом деле представляет собой особый тип контента)
  • Храните шаблоны в таком месте, где миграция между системами (dev, staging, prod) облегчает миграцию
0 голосов
/ 22 декабря 2010

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

...