Хранение компонентов HTML-шаблона в базе данных - PullRequest
0 голосов
/ 19 февраля 2012

Я ищу решение проблемы звездного форварда:

Есть несколько шаблонов, которые делятся на части двух типов: 1. образ 2. текст

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

Для каждого шаблона может быть около 5-10 компонентов, которые могут быть не общими для других шаблонов, например:

pageTitle
tagline
firstParagraph
buttonText
headerImage     -   Image Component
firstImage      -   Image Component

Итак, простой расчет говорит:

  • 1 страница = 1 шаблон
  • 1 пользователь может иметь> 1 страниц
  • Каждый шаблон может иметь 5-10 компонентов

Так что, если я храню это как:

COMPONENT   TYPE        VALUE         LINK

pageTitle   text        Hello world
tagline     text        tagline here
headerImage image       image.jpg     http://example.com

И это может быть любое количество пользователей, так что, скажем, 10000 страниц будут иметь> 10000 * 10 компонентов в дБ !!

Как у нас может быть меньше записей и с лучшей производительностью? Лучшая схема? Сериализированные? Json? Файловая система? или что-нибудь еще ... Что можно сделать?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

Ну, некоторые вещи, которые следует иметь в виду при создании чего-то вроде этого:

  • таблица памяти отлично подходит для быстрого чтения, так что если у вас много оперативной памяти Я хотел бы рассмотреть две таблицы в innodb, так что если ваш сервер падает, вы сможете восстановить таблицы памяти, и это великое дело, вы можете сыграть роль обратно.
  • Также убедитесь, что вы используете индексы. Вы должны убедиться, что
    все в вашем, где заявление находится в индексах и попробуйте Сделайте все ваши индексы числами, если это возможно. Возможно есть текст, который будет много повторяться в таблице будет в другом таблицу, так что вы можете использовать номер в таблице, для которой он нужен.
  • Еще одна вещь, которая мне помогает, скорее всего, те же самые страницы будет чаще, так что тип кэширования, который будет кэшировать страницы, которые были созданы за определенное время, должны помочь а также перформанс.

Надеюсь, это поможет.

0 голосов
/ 19 февраля 2012

100 тыс. Записей - не большое число, большинство баз данных могут обработать это число

если будет так много пользователей (страниц), любое упомянутое вами решение будет стоить больших ресурсов

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