![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Используя ЗАБОЙ, полю присваивается NULL, а хотелось бы НОЛЬ [IB6.x, FB]
q-q © (2006-06-06 10:07:00)При удалении цифры используется Забой => Полю присваивается NULL, а хотелось бы НОЛЬ. Устанавливать NOT NULL полю не хотелось бы (удалять инф-цию удобней Забоем, а не НУЛЕМ). Триггер на update (if f.new is null then f.new=0) по каждому числовому полю тоже нехорошо.
Подскажите, как решить оптимальнее на уровне базы.
ЮЮ (2006-06-06 12:03:00) [61]
> Параметры километраж на утро и вечер являются неотъемлимой
> частью путевого листа в сознании всех логистов мира,
Даже если экспедитор работает в ночную смену? Сознание лрогистов при этом не переворачивается? :)
Sergey13 (2006-06-06 12:03:00) [62]2[26] q-q (06.06.06 11:56)
>Параметры километраж на утро и вечер являются неотъемлимой частью путевого листа в сознании всех логистов мира
Так ты логист?!!! Тогда понятно. Логисту простительно вводить в таблицу автоатрибуты ежедневного километража. 8-)
>Ну-ка, ну-ка.
Не "нукай" - не запряг еще.
>Как с помощью SQL вытащить записи подчинненной таблицы в строку главной
Надо соединить ("сджоинить") главную и подчиненную таблицы. Это азы SQL. То, для чего он и предназначен.
Ega23 (2006-06-06 12:01:00) [63]
> Ну-ка, ну-ка. Как с помощью SQL вытащить записи подчинненной
> таблицы в строку главной
1. А нафига?
2. Есть такая штука - join.
ЮЮ (2006-06-06 12:00:00) [64]>сегодня я ввел километраж на утро и километраж на вечер
А про полдень и полночь забыл? Разве Километраж - это атрибут какого-то объекта, дабы было два поля "километраж на утро" и "километраж на вечер".
Это его динамечески изменяющееся свойство, а раз динамика, значит, что-то типа:
Километрах (
Обект,
ДатаВремяИзмерения,
Величина
)
q-q (2006-06-06 11:56:00) [65]>Sergey13 © (06.06.06 11:45) [23]
>Не надо нервничать. НИКОГДА заранее ВСЕ! не известно. 8-)
Параметры километраж на утро и вечер являются неотъемлимой частью путевого листа в сознании всех логистов мира, и закладывать сюда вероятность появления других аттрибутов кажется некорректным
>Для этого существует язык SQL.
Ну-ка, ну-ка. Как с помощью SQL вытащить записи подчинненной таблицы в строку главной
Сергей М. (2006-06-06 11:50:00) [66]
> q-q (06.06.06 11:41) [21]
> Вчера, когда приектировал, БК еще не были изобретены
> Заранее было ВСЁ! известно
Ты сам себе противоречишь, заметь !
Мол, БК еще и в помине нет, но мне они уже известны ..
> с табличным представлением данных
Заметь - представлением! А не хранением...
Хранение и представление - разные вещи.
Сергей М. (2006-06-06 11:46:00) [67]
> Johnmen © (06.06.06 11:33) [19]
Ну мало ли что там еще у автора в триггере будет твориться, кроме упомянутых проверок-присвоений)..
Впрочем, встречаются и такие "клинические случаи", когда народ умудряется достичь это лимита ..
Sergey13 (2006-06-06 11:45:00) [68]2[21] q-q (06.06.06 11:41)
> Заранее было ВСЁ! известно.
Не надо нервничать. НИКОГДА заранее ВСЕ! не известно. 8-)
>Т. е. с табличным представлением данных
Для этого существует язык SQL.
q-q (2006-06-06 11:43:00) [69]Т. е. с табличным представлением данных
q-q (2006-06-06 11:41:00) [70]> Когда число атрибутов, характеризующих объект, заранее не известно
Заранее было ВСЁ! известно.
> следует описывать и размещать в подчиненной таблице
А если отображать и работать надо со строкой
Сергей М. (2006-06-06 11:36:00) [71]
> Причем тут "спроектировано не очень хорошо".
Когда число атрибутов, характеризующих объект, заранее не известно (может варьироваться), атрибуты эти следует описывать и размещать в подчиненной таблице, каждая запись которой будет содержать один атрибут одного объекта. При этом добавление/модификация/удаление атрибута сводится к добавлению/модификации/удалению записи в этой таблице, а не к реструктуризации БД и переделке кода на сторонах клиента и/или сервера.
Johnmen (2006-06-06 11:33:00) [72]
> Сергей М. © (06.06.06 11:07) [15]
Это ж сколько д.б. полей, чтобы выйти за 48К (причём компилированного кода)??? :)
Если их действительно так много, то это проблемы консерватории...:)))
Sergey13 (2006-06-06 11:31:00) [73]2[16] q-q (06.06.06 11:26)
>Причем тут "спроектировано не очень хорошо".
При том, что много и постоянно растет их количество. 8-)
И твои утренние и вечерние километраж и литры наглядно демонстрируют мою догадку. 8-)
Ega23 (2006-06-06 11:30:00) [74]
> Допустим, сегодня я ввел километраж на утро и километраж
> на вечер, а завтра воткнул бортовые компьютеры (БК). Завтра
> новые параметры - литров бензина на утро и вечер. Вчера,
> когда приектировал, БК еще не были изобретены. Причем тут
> "спроектировано не очень хорошо".
Если бы было спроектировано хорошо, то твои БК воткнулись бы совершенно без проблем.
Расширять таблицу надо очень аккуратно. А то видал я таблицы по 50 полей, причём одно и то же поле для разных записей трактуется по-разному.
q-q (2006-06-06 11:26:00) [75]>Sergey13 © (06.06.06 10:44) [13]
> >Числовых полей - много, и их число увеличивается.
>Наверное спроектировано не очень хорошо. Симптом известный. 8-)
Допустим, сегодня я ввел километраж на утро и километраж на вечер, а завтра воткнул бортовые компьютеры (БК). Завтра новые параметры - литров бензина на утро и вечер. Вчера, когда приектировал, БК еще не были изобретены. Причем тут "спроектировано не очень хорошо".
Сергей М. (2006-06-06 11:07:00) [76]
> Johnmen © (06.06.06 10:56) [14]
Если у автора, как он утверждает, таких полей вагон и тележка, решение с триггером может привести в тупик - размер кода триггера, как известно, лимитирован.
Johnmen (2006-06-06 10:56:00) [77]
> Сергей М. © (06.06.06 10:40) [12]
Конечно.
Так у автора апдейт.... Тогда уже сказали - триггеры.
Sergey13 (2006-06-06 10:44:00) [78]2[11] q-q (06.06.06 10:38)
>Числовых полей - много, и их число увеличивается.
Наверное спроектировано не очень хорошо. Симптом известный. 8-)
>Для каждого создавать триггер - монотонная работа, а точно "Вошебства не бывает" ?
Не всякая работа творчество. Встречается и монотонная. А кому щас легко? 8-)
Сергей М. (2006-06-06 10:40:00) [79]
> Johnmen © (06.06.06 10:29) [9]
DEFAULT, afair, используется только при вставке.
q-q (2006-06-06 10:38:00) [80]>Johnmen © (06.06.06 10:29) [9]
>Объявить поле с NOT NULL DEFAULT 0
Тогда придется удалять инф-цию обнулением поля
to Sergey13
Числовых полей - много, и их число увеличивается. Для каждого создавать триггер - монотонная работа, а точно "Вошебства не бывает" ?