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 14:27:00) [1]

>Romkin © (12.09.03 13:57)
Спасибо :)


Romkin   (2003-09-12 13:57:00) [2]

Ну вы и флеймите. Хочется человеку - пусть делает. Кстати, это не просто реализуемо, а хорошо реализуемо. Несколькими путями.
1. OnBeforeUpdateRecord у провайдера - там делаешь, что нать ручками (запись доступна) и Applied := true, тогда провайдер не будет пытаться сам ее запостить
2. Сделать в удаленном модуле данных cds как была и присобачить провайдера к ней, а на запрос данных собирать ее вручную

и тд


Danilka   (2003-09-12 13:23:00) [3]

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


Danilka   (2003-09-12 13:22:00) [4]

Reindeer Moss Eater © (12.09.03 13:21)
тем, что фильтровать по числовому индексу гораздо легче, чем по строковому.


Reindeer Moss Eater   (2003-09-12 13:21:00) [5]

Тем, что select надо будет делать с join"ом против простого selecta к таблице?


Danilka   (2003-09-12 13:20:00) [6]

хотя, даже есть 90% запросов с фильтрами, а в таблице две сотни записей, тогда нет, неоправдано, я-бы не стал париться. :))


Danilka   (2003-09-12 13:18:00) [7]

Reindeer Moss Eater © (12.09.03 13:10)
>Я говорил, что реализация затеи обошлась дорого, а выгоды принесла минимум.

Принесла выгоду или нет, зависит от условия задачи - а нам они не известны. :))
Например, если 90% запросов к базе - запросы с фильтрами по этому полю, тогда, вполне оправдано.


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

Danilka
Ну, на счет нормализаци я с ним согласен, но какое это имеет отношение к вопросу?

После [2] я уже не пытался ответить на вопрос. Я говорил, что реализация затеи обошлась дорого, а выгоды принесла минимум.


Sandman25   (2003-09-12 13:10:00) [9]

[46] Danilka © (12.09.03 13:07)

Ну надо же было разобраться, помочь человеку. Возможно, он совершал ошибку, заводя этот справочник. Это уже потом выяснилось, что автор ветки знал, что делал.


Sandman25   (2003-09-12 13:08:00) [10]

[47] Radionov Alexey © (12.09.03 13:07)

Понятно.


Radionov Alexey   (2003-09-12 13:07:00) [11]

>Sandman25 © (12.09.03 12:59)
В вопросе я указал, что сервер на paradox"е сидит.
Сетка забиваться будет не сильнее прежнего, так как клиент продолжит получать то же, что и раньше (клиент я вообще не трогаю). И данные заносятся клиентом точно также как раньше.

А вот в таблицу-справочник уже добавляет сервер. При этом сначала ищет в справочнике пришедшее от клиента, если оно там есть, то в основную таблицу ставится ссылка на это. Иначе - добавляется запись и ссылка ставится на нее.

Таким образом, я просто поменял способ хранения информации. Клиента это волновать вообще не должно.


Danilka   (2003-09-12 13:07:00) [12]

Sandman25 © (12.09.03 13:05)
Ну, на счет нормализаци я с ним согласен, но какое это имеет отношение к вопросу? Точнее, какое отношение к вопросу имеет 90% постов, с учетом того, что ответ был в первом посте.
:))


Sandman25   (2003-09-12 13:05:00) [13]

[44] Danilka © (12.09.03 13:02)

Я не упертый. "Reindeer Moss Eater" меня переубедил :)


Danilka   (2003-09-12 13:02:00) [14]

Sandman25 © (12.09.03 12:59)
Как не стоило? Смотри сколько флейма, какие все упертые, особенно зануда Reindeer Moss Eater :))


Sandman25   (2003-09-12 12:59:00) [15]

[42] Radionov Alexey © (12.09.03 12:54)

Не, ну если поле действительно большое и записей очень много, то наверное пару десятков мегабайт сэкономить можно. С другой стороны, если поле с самого начала было VARCHAR и записей не так уж и много, то ради пары мегабайт забивать сетку, возможно, и не стоило. Но Вам, конечно, виднее, какая именно у Вас ситуация.


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

>Sandman25 © (12.09.03 12:41)
Большое строковое поле. Со временем выяснилось, что "разнообразие его значение не очень-то разнообразно". Сделал справочник. А вопрос был в этом: ГДЕ В ПРОВАЙДЕРЕ СДЕЛАТЬ ПЕРЕНАПРАВЛЕНИЕ ДАННЫХ, ДЛЯ ТОГО, ЧТОБЫ НИЧЕГО НЕ ТРОГАТЬ НА КЛИЕНТЕ.
Что уже и сделал.


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

Доказательство простое:
Ничего не изменилось.
Нормализации не прибавилось, ни убавилось.


Zacho   (2003-09-12 12:49:00) [18]


> Reindeer Moss Eater © (12.09.03 12:29) [35]
> Это тебе недостаточно, а мне достаточно.

Попробуй доказать. Тоько приводи точныеи полныеопределения НФ.
P.S. Кажется, этот спор зашел в тупик. Если есть желание продолжить - может перейдем в "Потрепаться" ?


Sandman25   (2003-09-12 12:41:00) [19]

>Так и после изменения НА КЛИЕНТЕ нет справочника. Хоть перечитайте весь форум.

Если клиент сейчас тоже не выбирает из справочника, то тогда действительно нафиг это все надо было...


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

До изменения не было справочника :) Перечитайте первый пост.

Так и после изменения НА КЛИЕНТЕ нет справочника. Хоть перечитайте весь форум.


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

Наверх

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