архитектура базы данных, сохранение пользователей-администраторов, участников сайта, подписчиков на рассылку. каковы лучшие практики - PullRequest
0 голосов
/ 03 сентября 2011

я уверен, что многие люди задавали подобные вопросы раньше, но я думаю, что здесь есть разница. У меня есть веб-сайт, использующий Zend Framework + doctrine. Я использую zend_acl и настраиваемый zend_auth для doctrine. Я использовал другую таблицу для пользователей-администраторов и другую таблицу для участников сайта. Я сделал это, потому что было слишком много полей для членов сайта, и администраторам не нужно заполнять эту форму. Кроме того, в таблице участников есть только несколько полей, которые могут содержать NULL. Я на грани добавления новостной рассылки, и я думал, что если бизнес-правило должен был позволить людям регистрироваться, не обязательно быть участниками.

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

Так вот мой вопрос.
Вопрос 1 : рекомендуется ли разделять администратора сайта и участников сайта?
Вопрос 2 : следует ли подписчикам на рассылку подписываться, не являясь членами сообщества сайта. Если так, как с этим справиться?

Спасибо за чтение.

1 Ответ

0 голосов
/ 04 сентября 2011

RE Вопрос 1: Вы можете логически расширить свои предварительно созданные таблицы администраторов сайта, добавив свои собственные независимые таблицы, которые содержат дополнительные необходимые вам атрибуты.Просто используйте FK для PK, которые уже есть в ваших предварительно созданных таблицах администратора сайта.Это обычная практика для любой настройки системы, когда у вас есть предварительно собранная система, которая не содержит всех необходимых вам столбцов или таблиц.

RE Вопрос 2: Это зависит от цели вашего сайта.Если вы создаете сайт для бизнеса, благотворительной организации, сервисной организации и т. П., Я бы посоветовал вам разрешить подписаться на вашу рассылку как можно большему числу людей.Если вы создаете сайт для тайного общества, вам лучше сохранить его закрытым!Это решение бизнес-правила, а не решение по проектированию базы данных.

Технический план для этого - захватить электронную почту (или обычную почту - если так доставляется ваша рассылка) подписчиков, не являющихся членами.Затем вы создаете представление, которое выполняет СОЮЗ ВСЕХ ваших участников и ваших не-подписчиков.Это представление предоставит вам список всех подписчиков, независимо от того, что еще вы знаете о них и как они вписываются в ваш сайт.

...