Вопрос

Я был бы признателен за советы экспертов по схеме базы данных для веб -сайта.

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

Пожалуйста, посмотрите на модель ER для текущего дизайна:

enter image description here

enter image description here

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

Ожидается, что на сайте есть потенциал для просмотра не менее 100 000 просмотров в день в течение нескольких месяцев после запуска.

Пожалуйста, посоветуйте о том, что вы думаете об этом дизайне и что можно сделать лучше.

Также, пожалуйста, посоветуйте лучшим двигателем DB для использования для такого сайта (InnoDB или любого другого ...).

Пожалуйста, посоветуйте о том, что было бы лучшим двигателем для хранения для этой базы данных, учитывая производительность, нагрузку, целостность БД (если это необходимо, поскольку она разработана на двигателе Myisam в настоящее время и, следовательно, нет целостности БД) и все, что еще предстоит рассмотреть для такого сайта Анкет

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

Заранее спасибо за вашу помощь.

Это было полезно?

Решение

  1. Почему, о, зачем вам использовать Myisam? Из того, что я вижу, вы не говорите о высокопроизводительном веб -сайте, так зачем его использовать ??? Пойти с Innodb.

  2. Целостность данных не является вариантом, поэтому, если вы не являетесь экспертом, вы, вероятно, не думали о внедрении логики в своем приложении, поэтому вам действительно следует подумать о использовании FK.

  3. Только глядя на вашу модель ER (которая даже не является ERM, так как у вас нет никаких отношений, так что нет r, это больше, это больше), мы не можем сказать так много. Нам нужна история, и история кажется большой.

  4. 100 тыс. Хит в день - это арахис, и в этом случае вводят в заблуждение. Какой самый высокий ожидаемый показатель в секунду? Как долго можно поддерживать этот уровень?

  5. В этой модели также отсутствует типы данных. Они не являются обязательными даже для минимального анализа.

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

Другие советы

С одного взгляда . Анкет Анкет

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

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

Идентификационный номер в таблице, у которой нет других уникальных ограничений, обычно является ошибкой. (Обычно, но не всегда.) Например, таблица «кошки», вероятно, нуждается в уникальном ограничении на «catname». В противном случае идентификационный номер будет идентифицировать только ряд, а не кошку. (А это означает, что у вас может быть два или более строк с одним и тем же «catname».)

Таблицы Adxfields и SubcatxFields выглядят как катастрофа, ожидающая возможности. Таблица «subcatxfields» выглядит как какой-то eav anti-pattern. Внимательно посмотрите на Слайд-шоу Билла Карвина в базе данных анти-паттерны Прежде чем идти по этой дороге. (EAV начинается на слайде 16.)

Ценообразование подката, вероятно, должна быть перемещена в отдельную таблицу.

Есть Международный стандарт для кодов страны. Анкет Вам лучше использовать стандартные коды страны вместо вашего собственного идентификационного номера. Использование читаемого на человеку код означает, что вы обычно можете устранить соединение. (Обычно, но не всегда.)

В таблице «города» не хватает колонн для идентификации города. (В США много городов под названием «Вашингтон».)

Это достаточно времени. Анкет Анкет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top