Скажем, у меня есть база управления фотографиями, в которой в настоящее время зарегистрировано 100 пользователей, каждая из которых имеет 10000 фотографий, ограниченных их user_id. Каждый пользователь будет иметь доступ только к своим фотографиям.Эффективность SQL Больше таблиц или более строк
Это более эффективно, чтобы иметь 100 таблиц (с user_id в качестве имени таблицы) для каждого пользователя с соответствующими 10000 фотографий ИЛИ Одна таблица, состоящая из всех 1,000,000 фотографий ИЛИ там просто нет разницы в какой-либо способ, связанный с производительностью базы данных?
В обоих случаях число будет продолжать расти (то есть больше пользователей или больше фотографий)
EDIT: настоящее время я использую MySQL для создания базы данных и предварительного рассмотрения на хранение ссылки на изображения который, скорее всего, будет сохранен в одной папке. Думаю, я лучше понял, как подойти к этому! Спасибо за ответы!
Это для MySQL или SQL Server? Вы храните изображения/двоичные данные в базе данных или только информацию о пользователе? В любом случае, вы почти наверняка не хотите иметь уникальную таблицу для каждого пользователя. –
Как правило, ваша схема должна быть статичной (при отсутствии изменений в коде приложения, требующем изменения схемы). Таким образом, один стол с фотографиями 1 м - лучший способ - правильно проиндексирован, он будет работать лучше, чем отдельные таблицы. – eggyal
Если вы планируете хранить фактические бинарные файлы в таблице - не делайте этого. Если вы планируете хранить ссылки на фотографии в базе данных ... Для получения базовой информации изображения достаточно сохранить изображения в каталоге с идентификатором пользователя на диске - таким образом вы могли бы использовать имя файла для хранения некоторой информации и это будет более эффективно. Когда дело доходит до более сложных операций с изображениями и метаданными, то, конечно, лучше сохранить ссылки в одной таблице. Однако держите количество полей в таблице этого размера до минимума. – phpPhil