IPB

Здравствуйте, гость ( Вход | Регистрация )

> Дайджест Дневника Обработки Пленок, Попытка систематизировать несистематизируемое :)
3aBxo3
сообщение 16.4.2011, 15:44
Сообщение #1


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 7.2.2011
Из: Сургут
Пользователь №: 9217



...


--------------------
Хорошо смеётся тот, кто смеётся над собой! ©
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
Relayer
сообщение 26.4.2011, 22:13
Сообщение #2


Активный участник
***

Группа: Пользователи
Сообщений: 276
Регистрация: 23.9.2010
Пользователь №: 5896



стоило отофлайнится немного а тут такое движение smile.gif
народ! я конечно понимаю что нормализация и реляционные отношения спасут мир. но мы же не луноход проектируем? зачем такой сложный структура для такой простой задача?
ну вот смотрите:

1) чувствительность не надо выносить в отдельную табличку. ряд чувствительностей стандартный. в вебинтерфейсе выбор из списка

2) то же самое относится к разрешению скана. нефиг сканировать с разрешением 2741дпи smile.gif народ этого не поймет

3) тип скана я бы вообще заменил на integer со значениями 0/1. ну и может быть 2 (правда не знаю что оно может означать)

4) сроки годности. я бы все же упростил и оставил одно integer поле - просрочка в годах. если оно 0 (по умолчанию) то материал не просроченный. дело в том что иногда приходится работать с материалом срок годности которого известен крайне неопределенно. но то что он просрочен скажем лет на надцать сказать можно с большой долей уверенности

5) таблицу "рецепт" я бы выбросил. "идентификатор пленки" добавить к "итерации". выбрать все итерации по цепочке проявитель-агитация-итерация не сложно - один запрос.

6) таблицы проявитель/раствор я бы объединил. всегда можно завести две записи - например Diafine A, Diafine B. я частенько использую в качестве второго раствора универсальные составы. т.е. первый раствор меняется а второй скажем такой же как и Diafine B.
в случае чб-слайд процесса либо кросспроцесса (обработки С41й пленки по чб) весь процесс многостадийный и там может участвовать несколько проявителей и других ванн (отбелка, осветление, чернение, фиксаж и тп). понятное дело что все эти ванны к проявителю имеют весьма далекое отношение, обычно являются универсальными и взаимозаменяемыми
в свете этого и расширения спектра процессов я бы объединил таблицы "проявитель" и "раствор". с полями: наименование, состав (текст) и тип раствора (проявитель, допроявляющий (для двухрастворников), стоп, отбелка, осветление, чернящий, фиксаж, вспомогательный и тп). при этом такие операции как замачивание, промывка и засветка тоже вписываются в эту схему! т.е. можно полностью расписать весь процесс (если он сложный скажем - у меня KodakVision2 по чб 8 ванн однако)
пункт спорный и обсуждаемый - так что надо думать


--------------------
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
3aBxo3
сообщение 27.4.2011, 11:09
Сообщение #3


Активный участник
***

Группа: Пользователи
Сообщений: 94
Регистрация: 7.2.2011
Из: Сургут
Пользователь №: 9217



Итак, давайте по-порядку!

Цитата(Relayer @ 27.4.2011, 1:13) *
1) чувствительность не надо выносить в отдельную табличку. ряд чувствительностей стандартный. в вебинтерфейсе выбор из списка


Я, конечно, не совсем понял Ваше предложение, но рискну предположить, что варианта два:

а) Вы предлагаете вообще убрать значение "номинальная чувствительность пленки" из модели. В этом случае у пользователя не будет возможности выбрать все пленки одинаковой чувствительности для выбора нужной пленки под конкретную задачу.
б) Вы предлагаете убрать таблицу "Чувствительность", оставив при этом в таблице "Пленка" поле "Чувствительность" и реализовав непосредственно в коде программы выпадающий список возможных значений этого поля. Согласен, ряд чувствительностей стандартный. Но что мы будем делать, если завтра вдруг фирма Ilford выпустит пленку с нестандартной чувствительностью? Правильно! Нам придется обращаться к программисту, чтоб он изменил код программы. Это плохая практика, и я ВСЕГДА стараюсь избегать подобных решений. Вобщем, моё мнение - словарь "Чувствительность" необходимо оставить и реализовать в интерфейсе какой-либо редактор словарей или же просто дать пользователю самому добавить новое значение в словарь с последующей модерацией.


Цитата(Relayer @ 27.4.2011, 1:13) *
2) то же самое относится к разрешению скана. нефиг сканировать с разрешением 2741дпи smile.gif народ этого не поймет


Ответ абсолютно идентичен пункту 1. Я бы даже сказал, что он более категоричен, ибо разрешения сканирования не стандартны.

Цитата(Relayer @ 27.4.2011, 1:13) *
3) тип скана я бы вообще заменил на integer со значениями 0/1. ну и может быть 2 (правда не знаю что оно может означать)


В словаре "Тип скана" всего два значения: негатив и бумага (позитив). Вполне возможно, что негатив стоит разбить на два, типа негативный негатив и позитивный негатив smile.gif. Как этот словарь реализовать, цифрами или словами, это не принципиально. Просто если цифрами, то программисту придется слова прописывать в коде, привязывая их к цифрам.
Так что по этому вопросу у меня нет принципиальной позиции. Пусть прораммист делает так, как ему удобнее.


Цитата(Relayer @ 27.4.2011, 1:13) *
4) сроки годности. я бы все же упростил и оставил одно integer поле - просрочка в годах. если оно 0 (по умолчанию) то материал не просроченный. дело в том что иногда приходится работать с материалом срок годности которого известен крайне неопределенно. но то что он просрочен скажем лет на надцать сказать можно с большой долей уверенности


Вот Вы сами как раз описали ситуацию, в которое одно поле типа integer мало чем поможет. Вы НЕ ЗНАЕТЕ, на сколько лет просрочена пленка, но точно уверены, что она просрочена. Какую цифру Вы проставите в этом поле? В описанной же мной модели в таблице "Годность пленки" всего два значения: свежая и просроченная, и Вы просто ставите у пленки признак, что она просрочена, а поле "Срок годности" оставляете пустым, ну или можете указать в нем приблизительный год истечения срока годности. Так что здесь я тоже категорически не согласен. Хотя тут не спорю, таблицу "Годность пленки" можно убрать и в таблицу "Итерация" просто добавить атрибут "Годность пленки", имеющий всего два значения.

Цитата(Relayer @ 27.4.2011, 1:13) *
5) таблицу "рецепт" я бы выбросил. "идентификатор пленки" добавить к "итерации". выбрать все итерации по цепочке проявитель-агитация-итерация не сложно - один запрос.


Тут буду думать ещё. Ответ для меня пока не очевиден.

Цитата(Relayer @ 27.4.2011, 1:13) *
6) таблицы проявитель/раствор я бы объединил. всегда можно завести две записи - например Diafine A, Diafine B. я частенько использую в качестве второго раствора универсальные составы. т.е. первый раствор меняется а второй скажем такой же как и Diafine B.


И как пользователь сможет выбирать все записи, относящиеся к проявителю Diafine? А так в таблице "Проявитель" будет запись "Diafine", а в таблице "Раствор" будет две записи "Diafine A" и "Diafine B", относящиеся к одной записи "Diafine".
Кстати, если, допустим, в таблице "Проявитель" добавить вторую запись типа "Diafine модифицированный (автор Relayer)" и к ней привязать имеющийся уже в таблице "Раствор" Diafine B, то у нас получится отношение между этими двумя таблицами "многие ко многим", соответственно, придется добавлять промежуточную таблицу для развязки этой ситуации.

Цитата(Relayer @ 27.4.2011, 1:13) *
я конечно понимаю что нормализация и реляционные отношения спасут мир. но мы же не луноход проектируем? зачем такой сложный структура для такой простой задача?


Структура, кстати, предельно простая... примитивная, я бы сказал. А нормализация значительно упростит задачу программисту.

Всё выше мной написанное - это моя, как говорится, "бизатвецтвинная имха" smile.gif
В конечном итоге всё будет решать программист smile.gif


--------------------
Хорошо смеётся тот, кто смеётся над собой! ©
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Relayer
сообщение 28.4.2011, 1:08
Сообщение #4


Активный участник
***

Группа: Пользователи
Сообщений: 276
Регистрация: 23.9.2010
Пользователь №: 5896



Цитата(3aBxo3 @ 27.4.2011, 11:09) *
б) Вы предлагаете убрать таблицу "Чувствительность", оставив при этом в таблице "Пленка" поле "Чувствительность" и реализовав непосредственно в коде программы выпадающий список возможных значений этого поля. Согласен, ряд чувствительностей стандартный. Но что мы будем делать, если завтра вдруг фирма Ilford выпустит пленку с нестандартной чувствительностью?

именно этот вариант я и предлагаю. сомневаюсь что фирма ильфорд выпустит пленку с чувствительностью 158ед ))
список стандартных чувствительностей забивается где-то массивом как константа. в идеале это отдельный маленький модуль с объявлениями глоб. констант

Цитата(3aBxo3 @ 27.4.2011, 11:09) *
Ответ абсолютно идентичен пункту 1. Я бы даже сказал, что он более категоричен, ибо разрешения сканирования не стандартны.

и часты вы их видели не стандартные? числовое поле. и константа массив (список дпи'шек)

Цитата(3aBxo3 @ 27.4.2011, 11:09) *
Вот Вы сами как раз описали ситуацию, в которое одно поле типа integer мало чем поможет. Вы НЕ ЗНАЕТЕ, на сколько лет просрочена пленка, но точно уверены, что она просрочена. Какую цифру Вы проставите в этом поле? В описанной же мной модели в таблице "Годность пленки" всего два значения: свежая и просроченная, и Вы просто ставите у пленки признак, что она просрочена, а поле "Срок годности" оставляете пустым, ну или можете указать в нем приблизительный год истечения срока годности. Так что здесь я тоже категорически не согласен. Хотя тут не спорю, таблицу "Годность пленки" можно убрать и в таблицу "Итерация" просто добавить атрибут "Годность пленки", имеющий всего два значения.

вы мыслите как проектировщик, а я как программист )) если у нас просрочкой управляет одно поле (кол-во лет просрочки либо 0 если свежая) то выборки "не просроченная" "просроченная до 5 лет" просроченная свыше 5 лет" записываются проще и компактнее.

Цитата(3aBxo3 @ 27.4.2011, 11:09) *
И как пользователь сможет выбирать все записи, относящиеся к проявителю Diafine? А так в таблице "Проявитель" будет запись "Diafine", а в таблице "Раствор" будет две записи "Diafine A" и "Diafine B", относящиеся к одной записи "Diafine".
Кстати, если, допустим, в таблице "Проявитель" добавить вторую запись типа "Diafine модифицированный (автор Relayer)" и к ней привязать имеющийся уже в таблице "Раствор" Diafine B, то у нас получится отношение между этими двумя таблицами "многие ко многим", соответственно, придется добавлять промежуточную таблицу для развязки этой ситуации.

жаль, не поняли вы мою мысль. еще раз внимательно перечитайте то что я писал. двухрастворники (трех, четырех и тп многостадийные схемы) вполне ложатся в то что я предложил. очень жаль что это вылетело из обсуждения.
вот скажите мне как в существующей схеме отобразить следующие процессы проявки чб-слайда:

процесс 1:
1) проявитель ORWO-567
2) отбелка двухромовокислая стандартная
3) осветление
4) тонирование в растворе с тиомочевиной

процесс 2:
1) проявитель ORWO-567
2) отбелка двухромовокислая стандартная
3) осветление
4) засветка
5) чернение в Kodak D-19

а никак. прийдется дублировать и делать такие записи:
1) чб-слайд ORWO-567 с тонированием тиомочевиной
2) чб-слайд ORWO-567 с засветкой и чернением в D-19

громоздко? не то слово

Цитата(3aBxo3 @ 27.4.2011, 11:09) *
Структура, кстати, предельно простая... примитивная, я бы сказал. А нормализация значительно упростит задачу программисту.

это вы как проектировщик или как программист говорите? smile.gif я с реляционками лет 10 проработал. и проектировал и писал. практика показывает что нормализация "не до конца" а в некоторых случаях и введение некоторой избыточности (синхронизация которой ложится на тригеры) позволяет существенно упростить выборки и повысить быстродействие системы в целом. ибо несовершенен мир. и нельзя впихнуть невпихуемое


--------------------
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Сообщений в этой теме
- 3aBxo3   Дайджест Дневника Обработки Пленок   16.4.2011, 15:44
- - artoptics   нафига ...   19.4.2011, 8:44
- - 3aBxo3   ...   19.4.2011, 11:14
- - dimich   Задумка конечно хорошая, но что такое Microsoft Of...   19.4.2011, 11:20
|- - 3aBxo3   Спасибо! Я понял, что подобная фигня никому не...   19.4.2011, 11:34
- - dimich   Не, ну так уж радикально - зря Вы. Зачем по двум ч...   19.4.2011, 12:42
|- - 3aBxo3   Цитата(dimich @ 19.4.2011, 15:42) Извинит...   19.4.2011, 16:50
- - dimich   Цитата(3aBxo3 @ 19.4.2011, 17:50) Я прост...   19.4.2011, 19:57
- - Relayer   эх ... усе пропустил граждане - в чем суть идеи? ...   20.4.2011, 20:45
|- - 3aBxo3   Цитата(Relayer @ 20.4.2011, 23:45) эх ......   21.4.2011, 6:05
|- - Relayer   Цитата(3aBxo3 @ 21.4.2011, 6:05) То, что ...   21.4.2011, 15:35
- - Aleksiy   Простите, что не ответил сразу. Разумеется, это де...   20.4.2011, 21:07
- - Relayer   есть предложение набросать в черновом виде что име...   21.4.2011, 0:50
- - 3aBxo3   Ребята! Можно я сразу всем отвечу? Моя имха, ...   21.4.2011, 5:56
- - dimich   Цитата(3aBxo3 @ 21.4.2011, 6:56) 1. Для т...   21.4.2011, 16:19
|- - 3aBxo3   Цитата(dimich @ 21.4.2011, 19:19) Прямо т...   21.4.2011, 17:19
|- - dimich   Цитата(3aBxo3 @ 21.4.2011, 18:19) как Вы ...   21.4.2011, 18:40
- - Relayer   3.1 вынести техзадание на публичное обсуждение. 3...   22.4.2011, 1:26
- - 3aBxo3   Хм! Странно! Процесс мы с Вами понимаем од...   22.4.2011, 3:28
- - dimich   С пунктами 3.x согласен. Можно ли теперь, пока не ...   22.4.2011, 9:09
|- - 3aBxo3   Цитата(dimich @ 22.4.2011, 12:09) С пункт...   22.4.2011, 10:53
- - 3aBxo3   Также, на мой взгляд, будет полезной функция, кото...   22.4.2011, 10:56
|- - dimich   Цитата(3aBxo3 @ 22.4.2011, 11:56) Также, ...   22.4.2011, 11:24
- - dimich   Да, конечно дополнения разумные. Как-то я упустил ...   22.4.2011, 11:14
- - Relayer   а я бы каменты разрешил. если кто-то повторил и по...   24.4.2011, 21:47
- - Relayer   еще один момент - просрочка. неплохо бы где-то дел...   25.4.2011, 18:40
- - dimich   Да, ценные дополнения. Стоит прислушаться к вашему...   25.4.2011, 21:35
|- - 3aBxo3   Цитата(dimich @ 26.4.2011, 0:35) Итак, за...   26.4.2011, 3:39
- - Aleksiy   Еще мысли есть, но вот силенок сейчас имеется ровн...   25.4.2011, 22:13
|- - dimich   Цитата(Aleksiy @ 25.4.2011, 23:13) Еще мы...   26.4.2011, 7:57
|- - 3aBxo3   Цитата(Aleksiy @ 26.4.2011, 1:13) Еще мыс...   26.4.2011, 8:37
|- - dimich   Вот оно значит как! А я то проглядел Алексе...   26.4.2011, 10:04
- - dimich   Предлагаю на всеобщее голосование кандидатуру 3aBx...   26.4.2011, 7:37
|- - 3aBxo3   Цитата(dimich @ 26.4.2011, 10:37) Предлаг...   26.4.2011, 8:32
- - 3aBxo3   Итак, пока первая версия модели для предварительно...   26.4.2011, 15:01
- - dimich   Ага, ну почти как я и представлял себе. На досуге ...   26.4.2011, 15:58
|- - 3aBxo3   Цитата(dimich @ 26.4.2011, 18:58) 1. Годн...   26.4.2011, 16:13
|- - dimich   Цитата(3aBxo3 @ 26.4.2011, 17:13) Справоч...   26.4.2011, 16:22
- - 3aBxo3   Кстати, забыл добавить к сущности "Итерация...   26.4.2011, 16:22
|- - dimich   Цитата(3aBxo3 @ 26.4.2011, 17:22) Вопрос ...   26.4.2011, 16:25
- - dimich   Двухрастворные проявители можно учесть двумя запис...   26.4.2011, 16:29
|- - 3aBxo3   Цитата(dimich @ 26.4.2011, 19:29) Двухрас...   26.4.2011, 16:47
- - 3aBxo3   И еще один момент. Хотелось бы устаканить терминол...   26.4.2011, 16:30
- - 3aBxo3   Вобщем, пока как-то так... только кольцевая связь ...   26.4.2011, 17:04
- - dimich   С терминологией согласен. Постараюсь придерживатьс...   26.4.2011, 17:06
- - Relayer   стоило отофлайнится немного а тут такое движение ...   26.4.2011, 22:13
|- - dimich   Не луноход, да. Подождем главного dba. Что он скаж...   26.4.2011, 23:20
|- - 3aBxo3   Итак, давайте по-порядку! Цитата(Relayer ...   27.4.2011, 11:09
|- - Relayer   Цитата(3aBxo3 @ 27.4.2011, 11:09) б) Вы п...   28.4.2011, 1:08
|- - 3aBxo3   Цитата(Relayer @ 28.4.2011, 4:08) вы мысл...   28.4.2011, 9:00
- - Relayer   ну это нормальный процесс обсуждения. даже после т...   26.4.2011, 23:28
- - dimich   Вот. Немного подумал и получается что. 1. Чувствит...   27.4.2011, 11:30
|- - 3aBxo3   Цитата(dimich @ 27.4.2011, 14:30) 1. Чувс...   27.4.2011, 12:10
|- - dimich   Цитата(3aBxo3 @ 27.4.2011, 13:10) Коллега...   27.4.2011, 12:32
|- - 3aBxo3   Цитата(dimich @ 27.4.2011, 15:32) Тоже не...   27.4.2011, 12:51
- - 3aBxo3   Кстати, домен devchart.ru вроде свободен.   27.4.2011, 12:57
|- - dimich   Да, подождем Алексея. Была же какая-то идея с темп...   27.4.2011, 13:05
- - 3aBxo3   Домен devchart хорош, на мой взгляд, тем, что он у...   27.4.2011, 13:36
- - dimich   Да, devchart хорош. Как это всё заработает, неплох...   27.4.2011, 13:51
- - 3aBxo3   Кстати, домен devchart.ru зарегистрировал на себя ...   27.4.2011, 14:12
|- - odem   Цитата(3aBxo3 @ 27.4.2011, 18:12) Кстати,...   27.4.2011, 19:23
|- - dimich   Цитата(odem @ 27.4.2011, 20:23) Так может...   27.4.2011, 21:02
- - Aleksiy   Да-ааа, упустил я тему ... Теперь за голову хвата...   1.5.2011, 21:18
- - 3aBxo3   Алексей! Тему Вы не упустили. Всю функциональн...   2.5.2011, 6:10
- - dimich   Точно. Данная функциональность будет даже перекрыт...   2.5.2011, 11:09
- - 3aBxo3   Боюсь даже спрашивать... Процесс-то хоть движется...   22.6.2011, 15:50
- - dimich   Движется. Трудностей особых нет. Не расчитал время...   22.6.2011, 16:18
- - 3aBxo3   Прощения просить не за что! Это же проект на д...   22.6.2011, 21:24
- - Prohor   Оживить бы темку) Что-то слышно о проекте?   10.7.2012, 15:23
- - Aleksiy   При переходе на новый "движок" предусмот...   10.7.2012, 16:48


Ответить в эту темуОткрыть новую тему
6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 27.4.2024, 18:37