Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / JOIN vs NULL / 15 сообщений из 15, страница 1 из 1
01.02.2006, 17:54
    #33517011
XORR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
Проблеман, наверное не нова.

Есть сущность заказ. Заказ может находится в нескольких стадиях. С каждой стадией добавляются новые атрибуты заказа.

Стадий всего несколько штук, причем, новых атрибутов в них по одному, два.

Певрое, что приходит в голову, засунуть атрибуты всех стадий в одну таблицу Заказы + добавить поле Текущая стадия.
Заказы (IDзаказа, атрибут1Стадии1, атрибут2Стадии2, ..., атрибутkСтадииm)
НО!
Большую часть времени в атрибутах большинства стадий будет NULL, т. к. заказ не сразу проходит все стадии.
Не все заказы могут доходить до финальной стадии, соответсвенно NULL будет вечно.

Второй вариант, для каждой стадии отдельная таблица.
НО!
Придется делать постоянно JOIN. Т. к. данные, которые храняться на первых стадия нужны постоянно.

Подозреваю, что ситуация шаблонная, подскажите как лучше спроектировать БД?
...
Рейтинг: 0 / 0
01.02.2006, 18:24
    #33517106
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
В принципе, у каждого подхода можно назвать свои преимущества, но в общем случае первый, пожалуй, удобнее. "Пятая стадия заказа" вряд ли представляет из себя настолько осмысленную сущность, чтобы было удобно вынести ее в отдельную таблицу.
...
Рейтинг: 0 / 0
01.02.2006, 18:48
    #33517213
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
Лучше смотреть на нормализацию таблиц и отсюда выбирать схему. Кстати - а что подразумевается ввиду под "Заказы и стадии" ? (очень много разных можно придумать задач - от оформления корзины в интернет магазине до провода заказа производства дизеля на заводе).
...
Рейтинг: 0 / 0
01.02.2006, 19:47
    #33517424
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
Вставляй NULL поля и не парься. Если конечно при этом нормализована будет таблица.
...
Рейтинг: 0 / 0
01.02.2006, 19:54
    #33517431
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
Че-та я не понял.
>> Заказ может находится в нескольких стадиях
имеется в виду одновременно?

Хм... тогда налицо должна быть таблица - список текущих стадий.
Чтобы можно было одним запросом выбирать заказы которые прошли несколько стадий.
...
Рейтинг: 0 / 0
01.02.2006, 20:59
    #33517544
XORR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
ASCRUS
Кстати - а что подразумевается ввиду под "Заказы и стадии" ? (очень много разных можно придумать задач - от оформления корзины в интернет магазине до провода заказа производства дизеля на заводе).
Скорее второе, первая стадия это дата, id_заказчика, описание заказа, на других стадия появляются: отвественный за заказ, сумма, и т. п.
...
Рейтинг: 0 / 0
01.02.2006, 21:02
    #33517547
XORR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
gardenmanЧе-та я не понял.
>> Заказ может находится в нескольких стадиях
имеется в виду одновременно?
Нет в одном из них. Причем, историю отслеживать не нужно.
...
Рейтинг: 0 / 0
02.02.2006, 15:29
    #33519341
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
NULL однозначно!
(с)ВВЖ

Все связанные с этим вариантом ограничения в Вашем случае выполнены -только одна стадия в любой момент, нет истории, мало специфических данных.
...
Рейтинг: 0 / 0
02.02.2006, 16:29
    #33519615
Серега
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
2 XORR
А почему нельзя просто в заказы вставить ссылку на таблицу стадий (текущее), которая ссылается на перечень своих атрибутов? Плюс таблица значений атрибутов, имеющая ссылку на заказ (типа история значений по стадиям).
...
Рейтинг: 0 / 0
02.02.2006, 17:11
    #33519768
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
Серега
А почему нельзя? Можно. Если нужно занять ближайшее время круто выглядящей бесполезной работой.
...
Рейтинг: 0 / 0
02.02.2006, 18:52
    #33520132
XORR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
Всем спасибо, решено - NULL.
...
Рейтинг: 0 / 0
02.02.2006, 22:05
    #33520429
dvm
dvm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
А завтра появится N+1 стадия , что делать бушь?
перестраивать таблицу?
...
Рейтинг: 0 / 0
02.02.2006, 22:14
    #33520447
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
dvmА завтра появится N+1 стадия , что делать бушь?
перестраивать таблицу?

Фся наша жисть - ихра!! сегодня так таблицу перестраиваить, завтра эдак. А что поделать !!
...
Рейтинг: 0 / 0
03.02.2006, 02:57
    #33520648
dvm
dvm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
пользуем мы такую табличку
Код: plaintext
create table tt (id int,sum0 numeric( 10 , 3 ),...,sumN numeric( 10 , 3 )
и с учетом того, что 70 % sumN пусты ,обработка тихий ужас:(
И не отказаться от этого безобразия.
...
Рейтинг: 0 / 0
03.02.2006, 09:33
    #33520882
Серега
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN vs NULL
softwarerЕсли нужно занять ближайшее время круто выглядящей бесполезной работой.
Почему бесполезной? И что тут крутого?
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / JOIN vs NULL / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]