Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5 6   вперед  Ctrl      все
 Re: а как вы делаете статусы ?  [new]
-Евгений-
Member

Откуда: Киев
Сообщений: 225
Alibek B.,

м.. я ничего не изобретал) где-то подсмотрели и просто взяли на вооружение)
так как ТС спрашивал советов по статусам, предположил, что это тоже могло бы быть полезно....
18 янв 13, 13:08    [13790684]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
/dev/null
Guest
/dev/null/
Я на измене
-Евгений-,

Вот оно что! Вы, оказывается, справочные данные выносите в отдельные таблицы с форейн кеем на них ? Хитро, хитро...
А с удалением строк вообще песня. Раньше-то как было - удаляешь и плачешь, удаляешь и плачешь.... Оказывается, можно просто признак удаления ставить!
Спасибо !

и где же смеяццо?

Если надо будет изменяемые "справочные данные" выносить в UI, то справочник необходим.
Про FK товарищ вроде не говорил.
Кажется я понял, где лопата,
извини друг
18 янв 13, 13:09    [13790697]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
-Евгений-
Member

Откуда: Киев
Сообщений: 225
/dev/null
Кажется я понял, где лопата
а я что-то нет) ну главное чтобы вам было весело, мне то че... ))))))
18 янв 13, 13:11    [13790709]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
/dev/null
Guest
-Евгений-
/dev/null
Кажется я понял, где лопата
а я что-то нет) ну главное чтобы вам было весело, мне то че... ))))))

ну вот например, забавно
а как вы делаете статусы ?
18 янв 13, 13:14    [13790745]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
-Евгений-
Member

Откуда: Киев
Сообщений: 225
/dev/null
ну вот например, забавно
а как вы делаете статусы ?
и? что там не так?)
18 янв 13, 13:15    [13790758]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
/dev/null
Guest
-Евгений-
/dev/null
ну вот например, забавно
а как вы делаете статусы ?
и? что там не так?)

да всё ок, не бери в голову
18 янв 13, 13:19    [13790806]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
Я на измене
Guest
-Евгений-,

Извини, дружище, я не со зла. Я конечно, верю, что ты искренне хотел помочь, но советовать в принципе очевидные вещи ?
18 янв 13, 13:52    [13791177]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
-Евгений-
Member

Откуда: Киев
Сообщений: 225
Я на измене
-Евгений-,

Извини, дружище, я не со зла. Я конечно, верю, что ты искренне хотел помочь, но советовать в принципе очевидные вещи ?

во 1х, не дружище!
во 2х, я не много знаю баз где удаление идет через изменение статуса. в большинстве идет именно удаление.
ну и в 3х, если очевидные вещи спрашивают, почему на них не ответить..
18 янв 13, 14:18    [13791456]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
-Евгений-,
для кого очевидные, для кого не очевидные...
я лично против числовых кодов статусов и тому подобных вещей.
чаще всего делают справочники по типу
числовой код- короткий код- описание
и потом через короткий код постоянно обращаются.
никто из "архитекторов" таких табличек, ни разу не ответил на простой вопрос: чем это лучше краткого кода и описания и ссылки на краткий код. так что всё относительно. и паттерн в любой момент может стать антипаттерном при смене подхода, архитектуры, звезд на небе...
18 янв 13, 14:23    [13791513]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
Wool
Guest
Пример со статусами настолько хорош, что становится уже плохим примером.
Понятно, что id(коды) статусов, какие они небыли бы, все будут помнить.

А вот для справочников типов, видов, классов и т.д. id уже будут забываться очень скоро после написания.

Через полгода смотришь на case по типу карты и мучительно вспоминаешь, что 7 - это кредитная карта с грейсом. сравни с понятность кода - "CRED_GR"

Так что правило простое - если нужно будет писаться программа, с использованием конкретных записей(значений), то лучше вменяемо-понятные коды.
18 янв 13, 14:59    [13791837]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
Неужели!
Guest
Wool
Так что правило простое - если нужно будет писаться программа, с использованием конкретных записей(значений), то лучше вменяемо-понятные коды.
Про константы не слыхивал?
18 янв 13, 15:10    [13791912]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
Битовая маска? Нет?

бит 1 - Открыто?
бит 2 - Утверждено?
бит 3 - Архив?

000 = 0. - Не Открыто, Не Утверждено, Не Архив
001 = 1. - Открыто, Не Утверждено, Не Архив 
010 = 2. - Не Открыто, Утверждено, Не Архив
011 = 3. - Открыто, Утверждено, Не Архив
100 = 4. - Не Открыто, Не Утверждено, Архив
101 = 5. - Открыто, Не Утверждено, Архив
110 = 6. - Не Открыто, Утверждено, Архив
111 = 7. - Открыто, Утверждено, Архив
18 янв 13, 15:51    [13792285]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
Wool
Guest
Неужели!
Wool
Так что правило простое - если нужно будет писаться программа, с использованием конкретных записей(значений), то лучше вменяемо-понятные коды.
Про константы не слыхивал?

Используются в спец случаях, но не люблю.
К тому же, при селекте записи в девелопере в поляне будет именно 7, а не мнемоника константы.
18 янв 13, 15:53    [13792302]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
-Евгений-
Member

Откуда: Киев
Сообщений: 225
Изя Кацман
Битовая маска? Нет?

бит 1 - Открыто?
бит 2 - Утверждено?
бит 3 - Архив?

000 = 0. - Не Открыто, Не Утверждено, Не Архив
001 = 1. - Открыто, Не Утверждено, Не Архив 
010 = 2. - Не Открыто, Утверждено, Не Архив
011 = 3. - Открыто, Утверждено, Не Архив
100 = 4. - Не Открыто, Не Утверждено, Архив
101 = 5. - Открыто, Не Утверждено, Архив
110 = 6. - Не Открыто, Утверждено, Архив
111 = 7. - Открыто, Утверждено, Архив

какие-то маски.. какие-то константы..
объясните мне, пожалуйста, чем плохо создать таблицу - doc_state с id и name и сандалить в неё любы необходимые состояния? О_0
18 янв 13, 16:12    [13792545]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
/dev/null/
Guest
Неужели!
Wool
Так что правило простое - если нужно будет писаться программа, с использованием конкретных записей(значений), то лучше вменяемо-понятные коды.
Про константы не слыхивал?

Не, константы это не дело.
Ты видать не работал в конторе, где с другого конца земли может прилететь запрос, типа посмотри что там,
и если там будет
where STATUS = 'OPEN' или STATUS = 'O', то это как-то понятнее, чем STATUS = 13, а STATUS = dbms_const.OPEN никто писать не станут, если только это не маленькая конторка, где все друг друга видят.
18 янв 13, 16:27    [13792713]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
-Евгений-
Изя Кацман
Битовая маска? Нет?

бит 1 - Открыто?
бит 2 - Утверждено?
бит 3 - Архив?

000 = 0. - Не Открыто, Не Утверждено, Не Архив
001 = 1. - Открыто, Не Утверждено, Не Архив 
010 = 2. - Не Открыто, Утверждено, Не Архив
011 = 3. - Открыто, Утверждено, Не Архив
100 = 4. - Не Открыто, Не Утверждено, Архив
101 = 5. - Открыто, Не Утверждено, Архив
110 = 6. - Не Открыто, Утверждено, Архив
111 = 7. - Открыто, Утверждено, Архив

какие-то маски.. какие-то константы..
объясните мне, пожалуйста, чем плохо создать таблицу - doc_state с id и name и сандалить в неё любы необходимые состояния? О_0

1) rtfm bitand.
при всём при том том, что суррогатные ключи для сабж = корове седло (не надо путать)
2) fk - штука затратная. по сравнению с check. словари для сабж. вполне могут быть реализованы именно как check.

за подробностями - в
select job from scott.emp
18 янв 13, 16:39    [13792826]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
\null\dev\
Guest
/dev/null/
Ты видать не работал в конторе, где
Говноконтора не повод для говнокода.
/dev/null/
'O'
Это цифра? Кириллица? Латиница? И никакой компилятор не обругает, что константа написана неправильно.
18 янв 13, 17:35    [13793158]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
/dev/null/
Guest
\null\dev\
/dev/null/
Ты видать не работал в конторе, где
Говноконтора не повод для говнокода.

Вот в таких конторах, как инвестиционные банки, и приходится работать, малыш. Где сотни тысяч строк кода, сотни таблиц и куча постоянно меняющихся разработчиков и всяких аналитиков-запросописак со всего света.
Завидую твоему уютному мирку состоящему из добрых эльфов, которые знают всё твои константы для базы данных продуктового ларька.
У эльфов конечно поспокойнее, но скушно и денег мало.
18 янв 13, 18:01    [13793307]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
-2-
Member

Откуда:
Сообщений: 15330
Неужели!
Wool
Так что правило простое - если нужно будет писаться программа, с использованием конкретных записей(значений), то лучше вменяемо-понятные коды.
Про константы не слыхивал?
и вести эти константы в каждом приложении? да ни кто же не мешает, только в таблице лежит само значение. и даже в запросе из plsql улетит :B666. Вот и гадай потом...
18 янв 13, 18:16    [13793349]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
Ага! Ну-ну!
Guest
-2-
и даже в запросе из plsql улетит :B666. Вот и гадай потом...
Долой байнды! Даёшь литералы!
19 янв 13, 10:19    [13795611]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
bulkcollect
Member

Откуда: Челябинск
Сообщений: 51
В конторе на уровне регламента прописано, что все статусы оформляются в виде справочника.
В обычной таблице (документ) - форейн на справочник.
Системка достаточно большая уже - табличек много.
Бесит, что пока 10-15 джоинов не напишешь - хрен пойчешь чё в таблице лежит.
Т.е. в повседневной работе при "разборе полетов" не достаточно написать
select * from tab
посмотреть глазами и наложить нужные фильтры - хрен.
Будешь еще по опсаниям полей искать поле 'Тип вывоза' и потом еще по структуре таблицы искать таблицу для Джоина.
И на это уходит уйма времени - непродуктивно просто.

Изменить ничего не могу - регламент кодировани.
Я бы в таблицу помещал короткий код справочника (символьный осмысленный) - в большинстве случаев этого кода достаточно.
Если символьный код из 10-20 символов слишком мал для передачи семантики - можно завести справочник с полями расшифровки.
21 янв 13, 08:34    [13800464]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
Zloxa
Member

Откуда: СССР ☭
Сообщений: 1033
Wool
Так что правило простое - если нужно будет писаться программа, с использованием конкретных записей(значений), то лучше вменяемо-понятные коды.


Я бы правило попытался сформулировать иначе, хотя, думаю, суть - та же.

Если какие либо коды определяются на этапе проектирования и используются логикой приложения, (и/или) если добавление новых кодов влечет за собой изменение логики приложения(в т.ч. кода вьюх/отчетов), то лучше использовать мнемоническую кодировку. Связанный справочник желателен исключительно в описательных целях, для единообразия отображения расшифровки кода в UI
21 янв 13, 10:20    [13800885]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
Llanowar
Member

Откуда: Москва
Сообщений: 96
bulkcollect
В конторе на уровне регламента прописано, что все статусы оформляются в виде справочника.
В обычной таблице (документ) - форейн на справочник.
Системка достаточно большая уже - табличек много.
Бесит, что пока 10-15 джоинов не напишешь - хрен пойчешь чё в таблице лежит.
Т.е. в повседневной работе при "разборе полетов" не достаточно написать
select * from tab
посмотреть глазами и наложить нужные фильтры - хрен.
Будешь еще по опсаниям полей искать поле 'Тип вывоза' и потом еще по структуре таблицы искать таблицу для Джоина.
И на это уходит уйма времени - непродуктивно просто.

bulkcollect, так можно же сделать вьюху/несколько вьюх, где заранее прописать все нужные джоины и человеческие статусы и к ней уже запросы клепать без потери времени..
21 янв 13, 10:52    [13801155]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
nxx
Member

Откуда:
Сообщений: 2030
Изя Кацман
Битовая маска? Нет?

бит 1 - Открыто?
бит 2 - Утверждено?
бит 3 - Архив?

000 = 0. - Не Открыто, Не Утверждено, Не Архив
001 = 1. - Открыто, Не Утверждено, Не Архив 
010 = 2. - Не Открыто, Утверждено, Не Архив
011 = 3. - Открыто, Утверждено, Не Архив
100 = 4. - Не Открыто, Не Утверждено, Архив
101 = 5. - Открыто, Не Утверждено, Архив
110 = 6. - Не Открыто, Утверждено, Архив
111 = 7. - Открыто, Утверждено, Архив


здрасте, приехали.
нормальные формы уже не в моде ?
21 янв 13, 12:01    [13801823]     Ответить | Цитировать Сообщить модератору
 Re: а как вы делаете статусы ?  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
nxx
Изя Кацман
Битовая маска? Нет?
бит 1 - Открыто?
бит 2 - Утверждено?
бит 3 - Архив?

000 = 0. - Не Открыто, Не Утверждено, Не Архив
001 = 1. - Открыто, Не Утверждено, Не Архив 
010 = 2. - Не Открыто, Утверждено, Не Архив
011 = 3. - Открыто, Утверждено, Не Архив
100 = 4. - Не Открыто, Не Утверждено, Архив
101 = 5. - Открыто, Не Утверждено, Архив
110 = 6. - Не Открыто, Утверждено, Архив
111 = 7. - Открыто, Утверждено, Архив

здрасте, приехали.
нормальные формы уже не в моде ?
Твой вопрос, камрад, вызывает у меня сильные сомнения, что ты знаешь, что такое нормальные формы :(

Попробуй зааргументировать аргУментами :)
21 янв 13, 12:10    [13801909]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5 6   вперед  Ctrl      все
Все форумы / Oracle Ответить