|
|
|
Реализация Кэша
|
|||
|---|---|---|---|
|
#18+
rodb...Скажите пожалуста, когда в базе данных в таблице ЗАЯЦ вы добавляете новое поле это как называется? Реинкарнация Типа? Как на ваш взгляд, эта операция что то вполне номальное или из ряда вон выходящее? отвечу вопросом на вопрос... Добавление поля - изменила зайца и он стал не зайцем ? (по своей идеологии) с уважением (круглый) ЗЫ Ышо раз... Если у Вас динамически поддерживаемы типы по самой постановке задачи - то типизацию тех сущностей которые фиксированные (не зайцы, а то что оперирует этими данными, контейнера или нечто другое) - так же должно прийти от заказчика. Иначе такая декомпозиция будет не жизненна. Рано или поздно - это даст о себе знать... Вот в принцепе и вся мысля... Только если её развивать, то не понятно тогда изначальный Ваш вопрос... Похоже (опять гадаю) - на декомпозицию искуственных сущностей - т.е. от Вашего мировозрения и накопленного опыта (ну может не лично Вашего - сорьки)... Если последнее - то это уже тяжело назвать ООА. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 19:46 |
|
||
|
Реализация Кэша
|
|||
|---|---|---|---|
|
#18+
Ышо раз повторяю(надеюсь в последний согластно вопроса: динамически поддерживаемы типы по самой постановке задачи что-нибудь конкретное можете сказать? можно перечитать заново вопрос. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 20:11 |
|
||
|
Реализация Кэша
|
|||
|---|---|---|---|
|
#18+
А Вы, простите, что, создаете типы на лету, исходя из текущей структуры таблицы в базе данных? Тоесть добавили поле x в в таблицу и ваша программа уже знает о его существовании без всякой там перекомпиляции и внесения изменений? В принцйпе, типы всеравно определенны. Если вы добавили поле x, то тип не изменился. Если же вернуться к вопросу о map и TStringList, то полазив по Delphi, могу Вам сказать, что TStringList очень зависит от свойства Sorted. Если оно установленно в True, то поиск по листу идет методом половинного деления. Вставка тоже использует этот метод. Тоесть вставляются объекты в порядке сортировки. В этом случае скорость TStringList и map сопоставимы. Разница лишь в том, что в map сравниваются числа, а в TStringList - строки. Плюс, при желании (в двухуровневой иерархии) map вам вернет реальный тип, а TStringList TObject. И последний вопрос. А нахрена вам Кэш? Может посто подумать над индексами в базе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 22:05 |
|
||
|
Реализация Кэша
|
|||
|---|---|---|---|
|
#18+
AndreiNz, >А Вы, простите, что, создаете типы на лету, исходя из текущей структуры таблицы в базе данных? >Тоесть добавили поле x в в таблицу и ваша программа уже знает о его существовании без всякой >там перекомпиляции и внесения изменений? Да, именно так, Уважаемый. Только термин 'Создавать' здесь имеет другое значение.Скорее всего 'Определяю Пользовательский Тип в базе'. У заказчика 7 пятниц на неделе и он сам незнает что будет завтра, поэтому приходится делать настраиваемую программу, которая будет обновляться без перекомпиляции. >Sorted. Спасибо за информацию.Это немаловажный фактор. Я еще не проводил опыты с двухуровневым кэшем, типа map<int, map<int, *TObject>> может будет работать намного быстрее. >И последний вопрос. А нахрена вам Кэш? Может посто подумать над индексами в базе? Растолкуйте ваше видение предлагаемого подхода. У меня Кэш на стороне клиента просто для того чтобы централизованно обрабатывать GUI пользователя. Данные полей объектов, подтягиваемые из базы, хранятся в кеше. При изменении значения поля, контролом - поле обновляет в GUI все ассоциированные с ним элементы и соответсвено нет необходимости делать пере-рефреш из базы чтобы обновить контролы. В программе очень часто надо показывать один и тот же хранимый объект на разных формах и в разных деревьях. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2006, 12:28 |
|
||
|
Реализация Кэша
|
|||
|---|---|---|---|
|
#18+
Простите, что отвечаю с опозданием. Все не могу выкроить время. У нас в екомпании есть подобное решение. Причем в двух местах оно реализованно немного по-разному. Правда нужда в таком подходе возникла, скорее исходя из практических соображений. Как это сделанно. Заводится таблица типаЖ id Intteger; typeId string; (может быть Integer); caption string; typedef string; (может быть Integer); IntValue Integer; StrValue string; FloatValue Float; Тоесть таблица как бы разворачивается в одну длинную полосу. Вы, естественно, выборку делаете по typeid - это ваш класс. В зависимости ор typedef, который говорит какого типа данные хранятся в поле вы используете соответственно IntValue, StrValue или FloatValue. Несколько проще можно реализовать подобный подход, если хранить только в форме строки. Все это сделанно на Delphi и Oracle но я не вижу причин, почему это не может быть сделанно в других средах. А на счет кэша, то вам придется, во-первых, синхронизировать состояние кэша с базой данных и здесь не все так просто, особенно если подумать о том, как будет вести себя система в случае сбоев. Да и оповещение об изменениях сделанных в одном компьютере для остальных участников процесса придется как-то реализовывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 11:12 |
|
||
|
Реализация Кэша
|
|||
|---|---|---|---|
|
#18+
AndreiNz >Тоесть таблица как бы разворачивается в одну длинную полосу. Вы, естественно, выборку делаете >по typeid - это ваш класс. В зависимости ор typedef, который говорит какого типа данные хранятся в >поле вы используете соответственно IntValue, StrValue или FloatValue. Буду признателен посмотреть, на такую структуру базы. Помоему, что то похожее есть с проектом Онтология. Там вообще все в одной таблице. >А на счет кэша, то вам придется, во-первых, синхронизировать состояние кэша с базой данных и >здесь не все так просто, особенно если подумать о том, как будет вести себя система в случае сбоев. Да нет не нада. Кеш на клиенте он же относится к клиентской программе. Если данные в кеше устарели, то клиент нажимает кнопку Рефреш и соответсвующие объектики в кеше обновляются. >Да и оповещение об изменениях сделанных в одном компьютере для остальных участников >процесса придется как-то реализовывать. Да нет нада. Миллионы систем живут грязным чтением и все вполне довольны. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 17:24 |
|
||
|
|

start [/forum/topic.php?fid=57&startmsg=33839610&tid=2030842]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 492ms |

| 0 / 0 |
