| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Организация БД |
| Автор: knighter 10.4.2006, 06:06 |
| Ситуация: БД на 10000 пользователей, для кадого пользователя есть некоторый объем информации, которую можно хранить как в отдельной таблице, там и в виде строки (приходится парсить). Вопрос такой: Каким образом лучше организовать структуру БД, с точки зрения быстродействия? - 10000 таблиц (1 таблица для каждого пользователя); - 1 таблица для всех пользователей. |
| Автор: boevik 10.4.2006, 08:20 |
| Если данные однородные, то конечно одна таблица. 10000 записей это и не нагрузка, при нормальных индексах. |
| Автор: Vit 10.4.2006, 14:07 |
| одна таблица |
| Автор: knighter 11.4.2006, 11:24 |
| Допустим таблица одна. Для каждого пользователя нобходимо хранить переменное во времени количество объектов (не одного формата). Если для каждого объекта создавать запись, то с индексацией будут понты. Есть вариант для каждого пользователя использовать только одну запись, содер. строку, описывающую объекты пользователя. При добавлении/удалении объекта строка парситься, переформировывается и сохранияется. Хочу услышать ваше мнение по этому поводу. |
| Автор: Vit 11.4.2006, 15:17 |
| Очень трудно понять что именно вы имеете ввиду, но таблица по своей сути должна хранить однородные данные, если предполагается в таблице хранить разнородные данные, значит Вы что-то неправильно спроектировали, а данные должны быть разбиты не по критерию пользователей, а по критерию зависимостей друг от друга и однородности (см. умные книжки по базам данных, раздел "нормализация данных"). Сам по себе критерий "Пользователь" не лучше и не хуже любого другого критерия - рост, цена, имя, объект, свойство или что-то ещё. |
| Автор: nostromo 14.4.2006, 17:18 |
| 10000 пользователей, насколько я понимаю, следует понимать как данные, которые сравнительно часто меняются (пользователи добавляются и удаляются). В случае заведения на каждого пользователя по таблице это приведет к регулярному изменению метаданных (структуры базы данных), а реляционные СУБД этого очень не любят (вспомните, почему нельзя сделать переменную TableName и делать в праметризованные по имени таблицы запросы?). Этот путь однозначно плохой. Если не хочется заморачиваться с нормализацией и нужно упростить парсинг, то можно попробовать хранить часть данных в XML формате. Это особенно удобно, когда вы со временем захотите добавлять/удалять/усложнять какие-то поля. Минус такого подхода -- сложность индексации по инкапсулированным в XML полям. |
| Автор: THenry 3.5.2006, 14:26 |
| 1 Таблица + Нормализация до 3НФ |