Как связать все системные объекты Page вместе в схеме? - PullRequest
0 голосов
/ 24 января 2011

У меня есть страница. Страница имеет формы. формы имеют поля. Поле имеет значения. Страница также имеет меню, текст, метки. Который делится с формами, полями, значениями. Некоторые тексты являются ссылками. Некоторые из меню являются окнами сообщений.

То, что я пытаюсь сделать, это связать все вместе, чтобы я мог реализовать отслеживание пользователей (отслеживание ссылок, отслеживание полей, отслеживание страниц и т. Д.). Я предполагаю, что стратегия такова:
1) Создайте таблицу соответствия для каждого типа (ссылки, страницы, поля, значения, формы, тексты, метки, меню, окна).
2) использовать FK, чтобы связать все таблицы вместе? (Вот где я теряюсь, к кому относятся FK, и если это имеет смысл, потому что если мне придется соединять 5 таблиц каждый раз при загрузке страницы, чтобы извлекать информацию и записывать в таблицы активности, читая из них, это будет влиять на производительность с большим количеством пользователей). так как это реализовано в реальном мире?

Некоторые данные, такие как поиск значений полей, поступают из разных таблиц, таких как «названия городов», «названия компаний» и т. Д. Таким образом, они не могут быть в 1 таблице.

Сайт является социальной сетью. Отслеживание пользователей строится для веб-сайта и мобильного приложения, поэтому распространены таблицы. Платформа php / mysql.

1 Ответ

1 голос
/ 25 января 2011

Это основной вопрос оформления таблицы.

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

Меню обычно хранятся в виде иерархии в одной таблице, обычно это menuId, parentId, text, link.

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

Итак, насколько стабильны данные? Если он высокостабилен, вы можете предварительно сгенерировать много файлов HTML в файл кэша, которые изменяются только при изменении данных. Если данные меняются раз в неделю или что-то в этом роде, это будет намного более производительным. Если данные меняются каждую минуту, вы должны оставаться динамичными.

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