Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
Здравствуйте господа знатоки cache !!! Я опять набрался наглости и смею вас побеспокоить... Не судите строго неразумного школяра, мне просто нужно знать наверняка! Есть два вопроса : 1) Как правильно создать класс в какой либо области cache, так что бы имея Default Storage, к этому классу можно было бы обратиться как к объекту имеющему несколько индексов в узле а не один как это делается по умолчанию т.е. так чтобы обращение к глобалу выглядело бы вот так ^CacheSpace.Global(id, id, "СТРОКА", id) а не как по умолчанию ^CacheSpace.Global(id) ? 2) КАк получить Id когда обращаетесь через класс который имеет много id в узле т.е. По умолчанию я получаю id записи вот так s obj= ##class(Cache.Space).OpenId(id) А как то же самое делать если у глобала несколько индексов определяющих строку ? Спасибо господа знатоки, еще раз извиняюсь, что посмел вас побеспокоить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 12:29 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
alex171069, судя по вопросам, вам нужно смотреть в сторону SQL Storage, т.е создавать обычный класс, потом переопределять ему хранение на SQLStorage в соответствии с унаследованной структурой данных. Читать можно здесь , подробнее с примерами здесь Создавать новые классы с нестандартной структурой хранения можно, но так не делают, по разным причинам: - Стандартная прозрачна и, в большинстве случаев, достаточно универсальна - Стандартная поддерживается производителем, а не вами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 14:11 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
doublefintно так не делают, по разным причинам И сторадж уже не тот, что был ранее... Его "мастер" уж точно. Обкоцали по самые не балуй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 14:53 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
alex171069так чтобы обращение к глобалу выглядело бы вот так ^CacheSpace.Global(id, id, "СТРОКА", id) Про SQL можешь сразу забыть... Т.о. имею встречный вопрос: - Зачем тогда тебе классы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 14:54 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
krvsaalex171069так чтобы обращение к глобалу выглядело бы вот так ^CacheSpace.Global(id, id, "СТРОКА", id) Про SQL можешь сразу забыть... Видимо, имелись в виду (надеюсь) id объектов разных классов, например (id организации, id отдела, "СТРОКА", id чего-нибудь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 15:13 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
doublefintВидимо, имелись в виду (надеюсь) id объектов разных классов Это без разницы... Там все эти ИД объявляются примарикеями и велся перебор всего и вся. Я тестил в свое время такие варианты - лучше сразу такое забыть. У нас свое хранение с "вложениями", так вот пытался перевести на классы + индексы описать... Вывод - оно того не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 15:24 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
alex171069 , Вы ранее уже создали три топика с похожим вопросом: 12556343 12271341 12238818 Решения не помогли? PS: IdKeys Now Have <Indexname>Exists and <Indexname>Open Methods Открытие Экземпляра по Индексу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 17:12 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
[quot servit] alex171069 , Вы ранее уже создали три топика с похожим вопросом: 12556343 12271341 12238818 Решения не помогли? Решения помогли но слегка для другого. Если вы внимательно прочитаете предыдущие топики, то легко поймете, что клоню я мягко говоря не в ту сторону. Да действительно id используемые в запросе глобала это обращение к другим классам имеющим связи с этим классом. Я лишь пытаюсь разобраться, как правильно создавать классы имеющие нестандартные индексы узлов (id,id, "Строка", id.....) используя стандартную по Default структуру хранения, естественно ее переработав... А стремление создать класс с нестандартными индексами доступа к строке родилось у меня исходя из того, что поиск конкретной строки в стандартной форме хранения представляется весьма не удобным на уровне классов и глобалов. Имея строку глобала GLOBAL(id) нужно пройтись по нему $Order() перебрав все его строки для того чтобы найти нужное значение в $LB("", дата, " нечто"..... ) это крайне не рациональный способ поиска информации ... Вы конечно же сейчас упрекнете меня в том, что я не использую SQL в котором все это оптимизированно ... - это все так конечно же, можно использовать и SQL и все сильно упростится...все это конечно же так, но простите это же не реляционная база данных. По этому хочется использовать более прогрессивные технологии тем более, что они лежат в основе CACHE. На мой взгляд создав оптимальную структуру хранения в классе я получу преимущество в скорости и удобстве доступа к данным которыми я манипулирую. Все это конечно же относится к классам и глобалам как наиболее быстрым и продуктивным формам доступа к данным. Я в текущей практике имею дело с объемами данных для которых SQL форма доступа уже очень медленная.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 06:16 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
alex171069Имея строку глобала GLOBAL(id) нужно пройтись по нему $Order() перебрав все его строки для того чтобы найти нужное значение в $LB("", дата, " нечто"..... ) это крайне не рациональный способ поиска информации ... Уже давно придуманы индексы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 08:20 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
alex171069По этому хочется использовать более прогрессивные технологии тем более, что они лежат в основе CACHE. Ты явно роешь не в ту сторону... Забудь про классы придумай свою "прогрессивную" систему хранения и работай с ней. Но не стоит мучить классы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 08:22 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
alex171069но простите это же не реляционная база данных Тут вообще я не понял... Какую систему хранения и структуру сделаешь именно ты - такой она и станет. Сделаешь реляционную - будет таковой. Замаклачишь древовидную - будет такой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 08:25 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
alex171069 , у меня встречное предложение... Было бы гораздо проще озвучивать что именно хочется записать в БД. Т.о. можно будет предложить разные варианты решений по классам ли, по глобалам ли... Иначе вариант тупиковый. И ты рискуешь перейти на "темную сторону силы", потом будешь везде писать как тебя обмануло Каше... Как ты намучился с ним... Ну и далее в таком же духе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 08:28 |
|
||
|
правильное создание класса
|
|||
|---|---|---|---|
|
#18+
alex171069 , Данные для класса со стандартной схемой хранения лежат не только в глобале вида global D , но и в global I , global S и global C . Как справедливо заметил krvsa , Вам нужно смотреть в сторону индексов: Структура хранения индексов в хранимых классах Если индекс уникальный, то Вы можете использовать методы класса, описанные в предыдущем посте. Иначе - работать с глобалом напрямую или через SQL. alex171069Вы конечно же сейчас упрекнете меня в том, что я не использую SQL в котором все это оптимизированно ... - это все так конечно же, можно использовать и SQL и все сильно упростится ...все это конечно же так, но простите это же не реляционная база данных. Язык SQL прекрасно подходит не только для РСУБД: Код: sql 1. Под "что-то" и "откуда-то" подставьте любой источник данных, например: SQL for WMI ( WQL ); jdbc for image ; jdbc for file access (text, csv, etc.). Когда Вы пишете код, использующий объекты, при компиляции он разворачивается в команды set, $get, kill, ... Когда Вы пишете код, использующий SQL, при компиляции он разворачивается в команды set, $get, kill, ... Странно, что Вы не хотите использовать преимущества архитектуры СУБД Caché :Цитата из документацииThe object and relational database systems talk directly to the database engine for extremely efficient operation; there is no object-relational middleware or SQL-to-object bridge technology. alex171069Я в текущей практике имею дело с объемами данных для которых SQL форма доступа уже очень медленная....Текущая практика основана на СУБД Caché? PS: при наличии "правильных" индексов SQL в большинстве случаев будет ничуть не хуже прямого доступа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 10:19 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=37836475&tid=1557449]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 412ms |

| 0 / 0 |
