Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

---|Ветка была без названия|---


Страницы:   1 2 3

Radionov Alexey ©   (2003-09-12 08:41:00) 

В проекте используется midas. На сервере поменялась структура таблицы, так как было выяснено, что в некотором строковом поле некоторой таблицы довольно часто встречаются одинаковые данные. Было решено это поле заменить ссылкой на соответствующий элемент в новой таблице-справочнике.

Вопрос:
Как "малой кровью" реализовать сие, если приложения на стороне клиента модификации не подлежат?
Клиенту данные этой таблицы отправляются соответствующим DataSetProvider"ом.


Radionov Alexey   (2003-09-12 10:21:00) [41]

>Reindeer Moss Eater © (12.09.03 10:14)
В моем случае вопрос к MS SQL отношения не имеет. В этой программе я его не использую.


Radionov Alexey   (2003-09-12 10:17:00) [42]

>Reindeer Moss Eater © (12.09.03 10:07)
Сторона клиента не меняется. Он ничего не знает про коды.


Reindeer Moss Eater   (2003-09-12 10:14:00) [43]

Вопрос был о существовании других вариантов решения, так как я не уверен в корректности первого.

MSSQL позволяет в некоторых случаях делать update для View"ов имеющих джойны двух таблиц.
Делаем View в котором приклеиваем к измененной таблице справочник и все. Данные берем из него и его же и обновляем.


Reindeer Moss Eater   (2003-09-12 10:07:00) [44]

Числа много меньше занимают места, нежели строки.

См. [11]


Radionov Alexey   (2003-09-12 10:04:00) [45]

>Reindeer Moss Eater © (12.09.03 09:50)
>и считаешь, что умнее кого-то из 1С.
Утверждение с высокой вероятностью верное. Не все же в "1С" гении? Хотя непонятно откуда ты сделал такой вывод.

А про "погреб" я сказал не с потолка. В версии для MS SQl попробуй посмотреть логи запросов "1С" к серверу. Обещаю много интересного.

Числа много меньше занимают места, нежели строки. Сокращение размеров таблицы - тоже довод. Да и поиск выполняться быстрее будет.

>Johnmen © (12.09.03 09:51)
Согласен. Так и сделал уже.
>А о нормализации надо было сразу думать
Думал.
>и возросшие аппетиты заказчика, по-моему, здесь непричем...
Может быть.


Reindeer Moss Eater   (2003-09-12 10:01:00) [46]

Johnmen ©

На основании чего такое утверждение ???

А требованиям какой из пяти нормальных форм стала удовлетворять таблица после произведенных действий (которой она не удовлетворяла до реструктуризации)?


Reindeer Moss Eater   (2003-09-12 10:00:00) [47]

Кроме того:
На участке "клиент-среднее звено" датапакет будет содержать как сами данные-строки, так и их коды. Трафик не только не уменьшится, но еще и возрастет.


Johnmen   (2003-09-12 09:58:00) [48]

>Reindeer Moss Eater © (12.09.03 09:54)

На основании чего такое утверждение ???


Reindeer Moss Eater   (2003-09-12 09:54:00) [49]

Все произведенные тобой манипуляции с таблицами не имеют ни малейшего отношения к нормализации.


Johnmen   (2003-09-12 09:53:00) [50]

>Reindeer Moss Eater © (12.09.03 09:50)
>Ты поменял шило на мыло ...

Ну почему же ? Я так понял, что он провел запоздалую нормализацию...


Johnmen   (2003-09-12 09:51:00) [51]

Так вот оно единственное решение в данных условиях Reindeer Moss Eater © (12.09.03 08:48)

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


Reindeer Moss Eater   (2003-09-12 09:50:00) [52]

Таким макаром и получаются конфигурации а-ля "1С", где гениально реализован принцип "походов в погреб за сметаной с чайной ложкой".

Обоснуй. Ты поменял шило на мыло и считаешь, что умнее кого-то из 1С. У тебя были повторяющиесся данные-строки (что само по себе нормально, не все же поля должны иметь UNIQUE атрибуты), а стали повторяющиеся данные - числа.
Ну и что дальше? В чем выигрыш конкретно?


Е-Моё имя   (2003-09-12 09:41:00) [53]

AlphaBlend:=true


Radionov Alexey   (2003-09-12 09:37:00) [54]

>Reindeer Moss Eater © (12.09.03 09:09)
Все-таки:
1. Про выигрыш. Всегда раздражали решения методом грубой силы.
Таким макаром и получаются конфигурации а-ля "1С", где гениально реализован принцип "походов в погреб за сметаной с чайной ложкой".
2. Обработка да, усложнилась. Неверно спроектирована база. Так как требования заказчика со временем изменились.
А почему ухудшается ситуация - так и не понял. Потому-что думать приходится? И сильное усложнение заключается в дополнительных 20 строчках кода? Это уже реализовал. Можно переписать клиентскую часть. Но это имхо гораздо труднее. Вопрос был о существовании других вариантов решения, так как я не уверен в корректности первого.


Reindeer Moss Eater   (2003-09-12 09:09:00) [55]

Возникшая проблема - следствие проведенной псевдонормализации таблиц. Почему псевдонормализации? Потому что исходная таблица не нарушала ни одну нормальную форму, а после изменений не стала "более нормализованной" с точки зрения Б-К.
Весь выигрыш в занимаемом дисковом пространстве, что давно уже не так актуально.
Зато обработка данных в на миддл-участке сильно усложнилась.
Вывод: изменения структуры не только не помогли, но и ухудшили ситуацию.


Radionov Alexey   (2003-09-12 08:53:00) [56]

>Reindeer Moss Eater © (12.09.03 08:48)
Как в этом случае лучше выполнить "подмену" полей при приеме данных клиента? Все делается в событии OnUpdateData у DataSetProvider?


Reindeer Moss Eater   (2003-09-12 08:48:00) [57]

Переписать запрос на сервере приложений так, чтобы он возвращал клиенту точно такой же датасет как и раньше


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо