Приложение Я должен разработать следующий:Каждый пользователь может создать группу с функциями занавеса и другие пользователи могут присоединиться? Проектирование баз данных
Группа имеет несколько функциональных возможностей, что каждый пользователь может получить доступ и работы с. Это не чат-группа. Это похоже на данные, которые каждый пользователь может добавлять/редактировать на основании своих привилегий.
Каждый пользователь может создавать или объединять столько групп, сколько ему нравится.
Мой вопрос - это лучший способ создать базу данных для такой задачи. Примеры похожих на то, что я хочу достичь существовать на живых сайтах, таких как: групп DeviantArt в, Trello, группы Facebook, LinkedIn страницах компании и т.д.
у меня есть два способа, которые звучат хорошо, но я могу пропустить что-то важное:
Я думал, что одна база данных является наилучшим способом и создаст ассоциации с группами и пользователями. Этот способ, хотя делает меня думаю о производительности. Что произойдет, если/когда будет тысяч или даже миллионов пользователей и, возможно, больше групп. Будет ли база данных mysql обрабатывать все запросы и быстро реагировать?
Другое предложение было сделано для меня, что я мог разделить каждую группу на разные таблицы. Поэтому, когда пользователь подключает запросы, которые будут выполняться , будет основываться только на группах, к которым он присоединился. Только до эти таблицы. При таком подходе я вижу базу данных, полную таблиц , которые позже не смогут управлять, так как больше групп получает .
Я считаю, что у меня будут проблемы с производительностью? Есть ли технология, которую я пропускаю, что может помочь в моей ситуации?
Это приложение будет разработано в Laravel 5 с базой данных MySQL и угловая 2.
Спасибо заранее!
John,
Имейте приятный и творческий день!
эй Крис, исправьте меня, если я ошибаюсь. Единственная причина, по которой этот способ может привести к проблемам с производительностью, заключается в том, что серверы (серверы) с низким качеством? –
@JohnBoulmetis Да, вы можете масштабировать его с помощью выделенного сервера базы данных и добавлять к нему кластеры по мере роста. Поговорите с вашим хостингом для получения более подробной информации или рекомендаций. – Chris