![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
---|Ветка была без названия|---
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]
До изменения не было справочника :) Перечитайте первый пост.
Так и после изменения НА КЛИЕНТЕ нет справочника. Хоть перечитайте весь форум.