Я только начинаю изучать базу данных, при разработке базы данных я замечаю, что многие рекомендации, такие как этот поток , предлагают НЕ использовать одну таблицу на пользователя, но хранить все данные в большой стол и сделать запрос, когда это необходимо. Но я все еще не понимаю, потому что кажется, что во многих ситуациях одна таблица на пользователя кажется очень эффективной.
Предположим, у меня есть база данных на 10000 клиентов, чтобы они могли отслеживать свои заказы. У каждого из клиентов будет очень мало заказов, например, около 10. Таким образом, каждый клиент входит в систему, вам придется пройти через большую таблицу, чтобы получить данные для этого клиента, однако, если вы сохраняете каждую таблицу для каждого пользователя, вы можете напрямую получить то, что нужно клиенту.
Другой пример, информационная система ресторана отслеживает меню всех ресторанов (скажем, в паре [foodname, price]), поскольку в каждом ресторане разное количество блюд, вы не можете поместить каждое меню в один ряд, вы можете только составьте огромную таблицу со строками [имя, цена, ресторан]. Но есть много ресторанов, поэтому, когда пользователю нужно меню определенного ресторана, вам нужно просмотреть данные всех ресторанов, что явно неэффективно.
Для обоих этих двух примеров я не могу придумать хороший способ создания базы данных, если я не хочу создавать каждую таблицу для каждого пользователя. Итак, мой вопрос заключается в следующем:
Если мы хотим избежать каждой таблицы для каждого пользовательского дизайна, как мы должны проектировать базу данных для подобных ситуаций?