Схема содержимого страницы / электронной почты - PullRequest
0 голосов
/ 25 сентября 2010

Я создаю сайт с пользовательским контентом, похожий на yelp. Сайт будет поддерживать многоязычность на 15 разных языках. Нужен совет по хранению системного контента, а именно:

  • Содержание страницы (все страницы по умолчанию текст и пункты меню)
  • Атрибуты страницы (Строка заголовка, метатеги, такие как ключевые слова, описание и т. д.)
  • Содержание электронной почты (Тема, заголовок, нижний колонтитул - оба HTML и текстовые версии)

С целью повышения производительности, я чувствую, что для всего этого должна использоваться только 1 таблица с такими столбцами, как: ID, Eng, Fr, Es, Gr, ... где каждый столбец - это язык, а ID - это ключевое слово, определить слово. В зависимости от языковой сессии пользователя он будет загружать соответствующие слова для загрузки.

Вопросы:

  1. Будет ли этот дизайн масштабироваться как система содержание увеличивается до тысяч страницы?
  2. Легко редактировать текст?
  3. Влияние на производительность?
  4. лучше проекты там на основе этого потребности?
  5. Любой другой тип системы содержание мне нужно поддерживать?
  6. Также для текста, такого как строка заголовка страницы которые являются динамическими - как на на странице профиля будет "Пользователь заполнен имя - название сайта) все это может быть сделано на уровне БД или кода?
  7. Самая большая проблема - значения поиска, такие как названия городов, названия категорий и т. Д., Они находятся в своей собственной таблице поиска. Поэтому, чтобы перевести их, я добавляю языковые столбцы в эти таблицы или cpy эти значения поиска только в таблицу содержимого?

Платформа: PHP / MySQL

1 Ответ

0 голосов
/ 25 сентября 2010

В: Масштабируется ли этот дизайн, а содержание системы увеличивается до тысяч страниц?Легко редактировать текст?Влияние на производительность?Есть ли лучшие проекты, основанные на этих потребностях?Какой другой тип системного контента мне нужно поддерживать?

A: Все приложения по-разному реагируют на большую нагрузку, поэтому нет однозначного ответа. Пока вы уменьшаете избыточность данных и сохраняете ихСУХОЙ (не повторяйся).Производительность в то время как запрос и код лучше.

В: Также для текста, такого как строка заголовка страницы, которая динамична - как на странице профиля это будет «Полное имя пользователя - Имя сайта» - все это может бытьсделано на БД или на уровне кода?

A: Вы можете иметь это в БД, но вы можете создать кеш-систему. Таким образом, вы не запрашиваете данные до тех пор, пока не произойдет изменение в БД.как статическая страница, но динамическая в то же время.

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

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

Таким образом, использование фреймворка всегда безопасно, но это не значит, что проект с нуля не таков.

...