![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 3 Всего: 17 |
есть таблица:
convert_vf - это конвертированный файл null, - это положительно, 0 отрицательно как правило больше будет значени с null === тут как бы правильно, сделать еще одну таблицу: ( а в предыдущей таблице удалить convert_vf )
подскажите, с точки зрения правильности, обязательно ли делать 2 таблицы, или можно одну таблицу? при каких нагрузках или размерах таблиц может быть разница в производительности? (если таблица 200Гиг?) если это "пофиг", то может лучше сделать одну таблицу? Это сообщение отредактировал(а) gcc - 11.12.2009, 20:05 |
||||
|
|||||
Gluttton |
|
||||||||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 2 Всего: 54 |
Не силен в MySQL, но по-моему
это тафтология (ведь по умолчанию если не наложено ограничение NOT NULL, то не указанное значение и будет NULL)... На мой взгляд не самое удачное решение, т.к. NULL - это значит не известно... Правильнее было бы 0 - отрицательно (по умолчанию), 1 - положительно, а NULL - это не известно... Кроме так будет нагляднее (мнение субъективно) строить запрос на выбор конвертированных файлов:
против
Необходимо выделить сущности и определить как они отнсятся друг к другу. Я например вижу здесь только одну сущность - файл, а признак конвертируемости - это его атрибут. Давайте пофантазируем пусть одна сущность будет файл, а вторая сущность факт конвертирования файла. Как они относятся? Одному файлу может соответствовать только один факт конвертирования файла. Не так ли? Ведь анализируя информацию об отдельном файле нам совешенно "до лампочки" конвертированы ли другие файлы? Так же одному факту о конвертировании файла может соответствовать лишь один файл (тот который и описывает данный факт). Т.о. они относятся как 1:1, а такие сущности (даже елси бы это были бы полноценные сущности, а не "высосанные из пальца" как в моем примере) на этапе физического проектирования необходимо объединять в одну сущность и атрибут (т.е. кто то из сущностей станет id, а кто то например status в одной и той же таблице)... А если бы у нас сущности относились бы как 1:М, то их обязательно крайне желательно было бы разнести в две таблицы дабы избежать аномалий.
Если разнести данные в две таблицы и при запросах к БД запрашивать информацию из обоих таблиц, то серверу прийдется каждый раз перемножать таблицы... Т.е. если у нас одна таблица на 1 Г записей, а мы ее разнесем на две таблицы по 1 Г в каждой, то невинный запрос на поиск самого позднего не конвертированного фильма заставит сервер сгенерировать 1 Г х 1 Г кортежей, а потом из полученого множества уже выбирать данные которые соответствуют тем или иным критериям. Хотя наверняка есть способ это оптимизировать, но на сколько я знаю в, в общем случае всё происходит именно так... Это сообщение отредактировал(а) Gluttton - 14.12.2009, 17:45 -------------------- Слава Україні! |
||||||||||
|
|||||||||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |