Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > динамическое создание таблиц, это плохо?


Автор: boostcoder 22.10.2010, 17:15
всем привет.
к примеру, для регистрации юзеров, у меня есть таблица. это стандартно.
а что, если к примеру, я для регистрации каждого юзера буду создавать таблицу с его именем, и добавлять ее название в отдельную общую таблицу, это нормально?

спасибо.

Автор: boevik 22.10.2010, 17:40
Не нормально.
  • Сколько юзеров в системе? 1, 10, 1000, ...
  • Что бы взять данные о юзере, надо в начале обратиться в общую таблицу, найти имя таблицы юзера, а потом выбрать данные из таблицы юзера - лишнее обращение к серверу.
  • Если надо изменить схему таблицы юзера, надо будет менять схему многих таблиц
  • если все имена таблиц динамические - нельзя построить связи между таблицами.
Можно привести еще много причин почему это плохо.

Автор: Akina 22.10.2010, 17:45
А зачем такое извращение?

Автор: Frees 22.10.2010, 18:09
глядя на таблицы поверни голову на 90 градусов... и станет у тебя все как у людей принято....

Автор: boostcoder 22.10.2010, 18:14
всем спасибо.
в реале, такого никогда не делал, но мысли были. вот и задал вопрос, чтоб расставить все по местам.

зы
Цитата(Frees @  22.10.2010,  18:09 Найти цитируемый пост)
глядя на таблицы поверни голову на 90 градусов

эм.. поясните.

Автор: Frees 22.10.2010, 18:38
Цитата(boostcoder @  22.10.2010,  21:14 Найти цитируемый пост)
эм.. поясните.

ты хочешь так

таблица: Никxxx

________________
атрибут| занчение|
--------------------------
имя        | Вася        |
мыло      | [email protected]    |

....

а если голову повернуть на 90 градусов то будет

таблица: Пользователь
__________________
Ник      | Имя   | мыло   |
-----------------------------
Никxxx |Вася   |[email protected]|

Автор: boostcoder 22.10.2010, 18:46
ааа, вот вы о чем smile 
спасибо.

Автор: Zloxa 23.10.2010, 10:54
А меня, кстати, тоже с недавних пор начал мучать вопрос - почему DDL на проде - плохо.
Раньше все было понятно. DDL не логировался и после DDL актуальность инкрементального быкапа терялась.
Сейчас лидеры индустрии вроде и DDL логируют.
Получаетя тогда что мешает?

Ладно с  модификацией объектов схемы все понятною. Может привести к ревалидации связанных объектов, появлению ошибок, сбросу состояния сессий, испльзующих ревалидируемые объекты.

Но создание новых объектов - почему не?
Модиификация объектов, не имеющих связанных с ними других объектов - почему не?
Trutcate table - почему не?

Автор: Frees 24.10.2010, 19:46
Zloxa, а как сделать быстрый простой поиск по множеству таблиц..
например если каждый пользователь - новая таблица как сделать поиск пользователя по мылу например?

Автор: boostcoder 24.10.2010, 19:49
Цитата(Frees @  24.10.2010,  19:46 Найти цитируемый пост)
например если каждый пользователь - новая таблица как сделать поиск пользователя по мылу например?

тупым перебором всех таблиц smile 

Автор: Zloxa 24.10.2010, 19:58
Цитата(Frees @  24.10.2010,  19:46 Найти цитируемый пост)
Zloxa, а как сделать быстрый простой поиск по множеству таблиц..

Если нужен поиск, DDL не оправдан.
А если поиск не нужен - почему нет?

Автор: Frees 24.10.2010, 20:04
Цитата(boostcoder @  24.10.2010,  22:49 Найти цитируемый пост)
тупым перебором всех таблиц 

тогда уж проще не таблицы а файлы на диске, вобще я не против новых идей, но я не представляю плюсов от такого подхода.
может я что то не понимаю?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)