общий вопрос о базе данных - PullRequest
0 голосов
/ 03 марта 2011

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

Ответы [ 2 ]

0 голосов
/ 03 марта 2011

«долгое время» субъективно и зависит от многих факторов.Для небольшого веб-сайта сообщества вы, скорее всего, не столкнетесь с какими-либо проблемами описанного вами метода.Тем не менее, это считается наилучшей практикой и значительно ускорит запросы, если вы используете правильные индексы.Столбцы, к которым будут выполняться запросы, такие как идентификатор пользователя, должны быть проиндексированы.Отсутствие индекса означает, что MySQL должен прочитать каждую запись в вашей таблице и проверить, соответствует ли она вашим критериям.

Эта статья может быть вам полезна:

http://www.databasejournal.com/features/mysql/article.php/1382791/Optimizing-MySQL-Queries-and-Indexes.htm

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

http://www.generatedata.com/#about

Наконец, если страницы не относятся к конкретному человеку или небольшой группе людей, рассмотрите возможность использованияболее общие ведра для контроля доступа.Например, если только администраторы могут просматривать страницу, свяжите эту страницу с правами администратора и отметьте, какие пользователи являются администраторами.Затем вы можете быстро проверить, к какому типу или типу пользователей относится конкретный человек, и решить показать ему страницу или нет.Этот тип системы обычно называют списком контроля доступа (ACL).

http://en.wikipedia.org/wiki/Access_control_list

0 голосов
/ 03 марта 2011

Преждевременная оптимизация - корень всех зол (Дональд Кнут)

Вы можете легко справиться с несколькими миллионами пользователей с помощью одной базы данных, так что вы выиграете 'не будет проблемой, пока ваше сообщество не станет огромным.Когда вы достигнете этого шага, вы можете переключиться на более масштабируемые решения БД, такие как Cassandra .

С учетом сказанного, примите во внимание комментарий Брэда Кристи и используйте разумное управление идентификацией, которое не будетбез необходимости перебивайте вашу базу данных.

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