Как правильно организовать хранение данных: одна табл для всех или каждому по табл?

AndreyKl

Новичок
Как правильно организовать хранение данных: одна табл для всех или каждому по табл?

Пишу приложение для веб. Пользователи регистрируются на сервере. Затем пользователь может загружать картинки на сервер. Затем возможен поиск по картинкам. Как организовать таблицы хранения данных о картинках? У меня два арианта:

ИЛИ

1. Данные о пользователе (UID, Name, Nick, etc.)
2. Данные о картинке (Img_ID, FileName, UID, title, description, URL)

ИЛИ

1. Данные о пользователе (UID, Name, Nick, etc.)
2. Данные о картинке (Img_ID, FileName, UID, title, description, URL)
3. Данные о картинке (Img_ID, FileName, UID, title, description, URL) НО только для одногопользователя (получается подмножество таблицы 2).

Обоснование для 3. Выборка из 2 может быть достаточно долгой, так как количество пользователей велико и каждый пользователь закачивает множество картинок. Запросы на выборку из таблицы 2 (вроде SELECT * FROM Images WHERE UID='134'). Могут происходить по несколько раз в секунду. Выборка из личной таблицы пользователя будет многократно меньше (пропорционально количеству пользователей). Общую таблицу использовать только для поиска. Вопрос: целесообразно ли создавать таблицу для каждого пользователя?
 

_vampiro_

Новичок
целесообразнее сделать индекс по UID. больше таблиц - больше проблем.
 

Gremboloid

инженера Гр...
Нет смысла плодить таблицы и лишний раз дублировать информацию в базе. Все нормально будет работать и с двумя таблицами.
 

AndreyKl

Новичок
Спасибо, учту.
Но может быть у кого есть опыт? Или теоретическое обоснование?

-~{}~ 16.06.06 14:53:

Опыт - в смысле результат использования такой схемы (отрицательный или положительный)...
 

Gorynych

Посетитель PHP-Клуба
так как количество пользователей велико и каждый пользователь закачивает множество картинок.
...
Вопрос: целесообразно ли создавать таблицу для каждого пользователя?
из этого прямо вытекает, что если делать таблицы для каждого пользователя, то их количество будет велико. ВАм не кажется, что в самом вопросе кроется ответ?
 

AndreyKl

Новичок
Gremboloid
Читаю ман, спасибо. Прочитаю - отпишусь.

Gorynych
Ну и что, что количество будет велико? Тките носом, если не трудно, где написано, что долно быть невелико?

-~{}~ 16.06.06 15:14:

Gremboloid
Всё ясно. Маны рулят, как всегда :) Ещё раз спасибо. Уже много довольно времени потратил на поиск ответа (часто навскидку трудно найти нужный раздел, если не знаешь чего ищешь).

Делать много таблиц в этом случае не имеет смысла. Тему можно считать закрытой.

Gorynych
Буду очень благодарен за объяснение (ссылку на объяснение), почему много таблиц - плохо в общем случае.

-~{}~ 16.06.06 15:28:

По вопросу к Gorynych
нашёл только это
http://www.mysql.ru/docs/man/Creating_many_tables.html

Вроде не критично...
Если есть ещё что нибудь - буду благодарен.
Если нет - тема закрыта.
 

Фанат

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

Gorynych

Посетитель PHP-Клуба
AndreyKl
той ссылки которую Вы нашли в принципе достаточно + голова. Вы собираетесь наплодить кучу таблиц, которые наплодят под себя кучу индексов (пусть даже каждая из них будет иметь только минимальный набор) и ваш сервер будет постоянно заниматься открытием, обновлением индексов и закрытием этго самого множества таблиц. Мне его (сервер) искренне жаль :)
 

AndreyKl

Новичок
Автор оригинала: Фанат
реши задачу получения общего количества картинок или рейтинга пользователей по количеству картинок для обоих случаев.
авось дойдёт.
Там русским по белому: Одня таблица - большя - для поиска, т.е. данные дублируются. Просто из неё не делаются выборки.

-~{}~ 16.06.06 16:25:

Автор оригинала: Gorynych
AndreyKl
Мне его (сервер) искренне жаль :)
На сервере в определённый момент определённое количество пользователей. Эти таблицы открыты. Пользователи меняются - меняются таблицы... Вроде так... проблем быть не должно... вообще, интересный вопрос(для меня). Читая мануал, наткнулся на упоминание о том, что если к таблице очень часто обращаются, то можно разделить её на две, что может улучшить ситуацию...
Будет время - проведу эксперемент, но не сейчас (других проблем по-горло, спасибо тут в индексы носом ткнули).
 
Сверху