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

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

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

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

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

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

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

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

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


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