powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / функция $O или что то другое..?
66 сообщений из 66, показаны все 3 страниц
функция $O или что то другое..?
    #35230609
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как получить все индексы на N-м уровне? И независимо от значений индексов на предыдущих уровнях? В букваре есть пару примеров, включая до 3-го уровня, при известных индексах на предыдущих уровнях... но эт не то... Пробовал пользоваться функциями $Q и $QS - но проблема в том что при этом включаются повторяющиеся индексы!
Что посоветуете? Или делать по второму варианту и удалять повторяющиеся индексы?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35230902
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>И независимо от значений индексов на предыдущих уровнях?

Что это значит ??? индекс N-уровня зависить от своих N-1 индексов - потому что они входять в конечный "ID" узла

>>Пробовал пользоваться функциями $Q и $QS - но проблема в том что при этом включаются повторяющиеся индексы!

Ну так сохрани их в локальный массив, или список, перед добавлением в который по $LF проверяй вхождение
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35231365
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotКак получить все индексы на N-м уровне? И независимо от значений индексов на предыдущих уровнях? В букваре есть пару примеров, включая до 3-го уровня, при известных индексах на предыдущих уровнях... но эт не то... Пробовал пользоваться функциями $Q и $QS - но проблема в том что при этом включаются повторяющиеся индексы!
Что посоветуете? Или делать по второму варианту и удалять повторяющиеся индексы?
Я тоже несколько не понял проблему. Банальный вариант перебора по уровням уже не устраивает?
Можно конечно пользоваться $Q, если только массив не слишком большой, но это неудобно.
А откуда повторяющиеся индексы? Имеются в виду разные ветки?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35231843
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ptn>>И независимо от значений индексов на предыдущих уровнях?

Что это значит ??? индекс N-уровня зависить от своих N-1 индексов - потому что они входять в конечный "ID" узла



Значений индексов на N-1 уровне может сколь угодно быть много, правильно?
И чтоб получить все индексы на N-м уровне функцией $O нужно зафиксировать конкретный индекс (индексы) на предыдущих уровнях... а мне нужны все эти индексы.
Вот небольшой пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
s x="Иванов", y=""
f {
 s x=$O(^Glob(x,y))
 q:y=""
 w x
}


Вот все неповторяющиеся индексы на втором уровне, но при фиксированном индексе первого... x="Иванов". И т.д. в этом методе нужно фиксировать предыдущие индексы... Вот в этом и проблема, что хочу найти универсальные метод для определения неповтряющихся индексов на любом уровне и все до одного!
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35231850
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergei ObrastsovА откуда повторяющиеся индексы? Имеются в виду разные ветки?

А разве в N-мерном массиве не может быть повторяющихся индексов на одном уровне??
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232090
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется, если у вас возникают такие задачи, то изначально структура данных спроектирвоана неправильно.

Вам помогло бы стандартное хранение классов в индексах, но неизветно сколько ради этого придется переделаывать.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232096
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тфу...
читать так

Вам помогло бы стандартное хранение классов, которое предлагает каше с индексированными полями, но неизветно сколько ради этого придется переделаывать.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232137
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLot Sergei ObrastsovА откуда повторяющиеся индексы? Имеются в виду разные ветки?

А разве в N-мерном массиве не может быть повторяющихся индексов на одном уровне??

На одном уровне - может - если у них разные предыдущие подуровни - по этому и непонятно про "независимо"

Код: plaintext
1.
2.
3.
4.
^Glob("Иванов","Иван")
^Glob("Иванов","Петр")
^Glob("Петров","Иван")
^Glob("Петров","Петр")
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232220
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот если так огранизовано (как я подозреваю) - то это неправильно.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232317
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странная какая-то задачка "Выбрать все индексы N-го уровня"...
Так или иначе придется пробегать по всем значимым элементам переменной и вырезать N-ный индекс (если он там есть)...

Автор, а можно поподробнее из-за чего возникла такая необходимость?
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232438
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.Вот если так огранизовано (как я подозреваю) - то это неправильно.

А как правильно, пример привести можно?
У меня примерно так:
Код: plaintext
1.
2.
3.
4.
^Glob("Компьютер", "AMD","Athlon 3000")
^Glob("Компьютер", "AMD","Duron")
^Glob("Компьютер", "Intel","Celeron D320")
^Glob("Компьютер", "Intel",Pentium  4 ")

Вот здесь два повторяющихся индекса "Intel" и "AMD"...на втором уровне, и в зависимости от того, какой выбрать в приведённом мною выше примере, можно получить либо Athlon 3000 и Duron, либо
Celeron D320 и Pentium 4 на третьем... а как здесь по -вашему было бы правильнее?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232450
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa

Автор, а можно поподробнее из-за чего возникла такая необходимость?


У меня была такая идея:
Все индексы N-го уровня должны быть в ниспадающем списке (<select></select>)- и логично предположить, что повотряющиеся индексы там ни к чему...
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232463
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщето я уже сделал то что хотел, но хочу обсудить высказанное предположение о том, что структура данных неправильная, и как её опитмизировать?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232518
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotкак её опитмизировать?
Разделить собственно даные и индексы. Как вариант:
Таблица 1Код объектаКод фирмы производителяНазвание
Таблица 2Название объекта
Таблица 3Фирма производитель
Потом наделать индексов для просмотра и быстродействия задачи...
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232588
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала нужно бы знать постановку задачи и исходные данные

автор^Glob("Компьютер", "AMD","Athlon 3000")
^Glob("Компьютер", "AMD","Duron")
^Glob("Компьютер", "Intel","Celeron D320")
^Glob("Компьютер", "Intel",Pentium 4")

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

Будет гораздо меньше головной боли.

Кстати, вы в курсе про нормализацию? Она ведь не только в SQL системах нужна?
(Хотя формализованное описание вроде есть только для SQL)
Что будет например если фирма AMD переименуется?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232594
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotУ меня примерно так:
Код: plaintext
1.
2.
3.
4.
^Glob("Компьютер", "AMD","Athlon 3000")
^Glob("Компьютер", "AMD","Duron")
^Glob("Компьютер", "Intel","Celeron D320")
^Glob("Компьютер", "Intel",Pentium  4 ")

Вот здесь два повторяющихся индекса "Intel" и "AMD"...на втором уровне, и в зависимости от того, какой выбрать в приведённом мною выше примере, можно получить либо Athlon 3000 и Duron, либо
Celeron D320 и Pentium 4 на третьем... а как здесь по -вашему было бы правильнее?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
^Glob
$ "Компьютер"
|
|
$------------------------------$
| "AMD"                        | "Intel"
|                              |
$----------------$             $-------------------$
  "Athlon 3000"    "Duron"       "Celeron D320"      "Pentium 4"

Так понятнее с "повторяющимися" индексами? :)
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232641
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТак понятнее с "повторяющимися" индексами? :)
нет, стало более запутанно :-)

Нужно идти по пути, который предложил krvsa
При этом данные будут типа

Код: plaintext
1.
2.
3.
4.
5.
^Comp.T1D(Ид1)=$lb(Код1, КодПроизв1, КодИзделия1 )
^Comp.T1D(Ид2)=$lb(Код2, КодПроизв2, КодИзделия2 )

^Comp.T1D(Индекс1,КодИзделия1 )=Ид1
^Comp.T1D(Индекс1,КодИзделия2 )=Ид2

При это у нас основа - данные, а индексы строит каше и их может много разных.
Но естественно без точного описания задачи таблицы проектировать неудобно.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232691
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergei Obrastsov
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
^Glob
$ "Компьютер"
|
|
$------------------------------$
| "AMD"                                  | "Intel"
|                                           |
$----------------$                   $-------------------$
  "Athlon 3000"    "Duron"       "Celeron D320"      "Pentium 4"

Так понятнее с "повторяющимися" индексами? :)

Не понятно, чем эта схема отличается от моего кода? Трёхмерный массив остаётся трёхмерным, или нет?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232713
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotТрёхмерный массив остаётся трёхмерным, или нет?
А куда он из cache.dat денется!
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232743
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н. авторТак понятнее с "повторяющимися" индексами? :)
нет, стало более запутанно :-)

Нужно идти по пути, который предложил krvsa
При этом данные будут типа

Код: plaintext
1.
2.
3.
4.
5.
^Comp.T1D(Ид1)=$lb(Код1, КодПроизв1, КодИзделия1 )
^Comp.T1D(Ид2)=$lb(Код2, КодПроизв2, КодИзделия2 )

^Comp.T1D(Индекс1,КодИзделия1 )=Ид1
^Comp.T1D(Индекс1,КодИзделия2 )=Ид2

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

Где то я кажется это уже слышал, точнее читал.. вроде у Труба, параграф 12,2 "Универсальная модель хранения данных" (с. 163)- там есть листинг 12,4...или то не то??
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232746
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotНе понятно, чем эта схема отличается от моего кода? Трёхмерный массив остаётся трёхмерным, или нет?
Я думал вы увидите. Суть в том, что это ОДИН индекс, он не повторяется.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232765
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы зря зацепились за один индекс.
Вы очень ограничиваете себя в этом.

Труба не читал. То, что я привел - делает компилятор каше при стандартном способе хранения. Но если он для вас в новинку, то уж извините...

И вообще:
Нет N-мерности в каше!
Глобалы - это не массивы!
И уж тем более каше не многомерная база данных.

Удивительно, когда маркетингу верял люди, работающие с ситемой...
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232787
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.И вообще:
Нет N-мерности в каше!
Глобалы - это не массивы!
И уж тем более каше не многомерная база данных.

Какие интересные новости! Можно поподробнее?
Я весь в смятении, 22 года считал, что это массивы. По-моему, не только я один.
Ужасно интересно, что же такое глобалы? Откройте мне тайну, плиииз!
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35232810
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei Obrastsov22 года считал, что это массивы. По-моему, не только я один.
Аналогично.
Ну если только "разреженые".
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233001
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, уговорили, при некоторой абстрации можно считать глобалы массивами.

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

То есть строится B-дерево из ключей (которые "делаются" из индексов) + цепляются данные, тоже упакованные в одно значение.
Отсюда и будут проблемы при задачах типа "хочу зафиксировать значение третьего индекса и пройти по первому"
Их нет, этих индексов. И доступ ко второму индексу (вернее, второй половинке ключа) без знания первой - невозможен.

Мое высказываение, что каше - не многомерная база, доказывать нужно?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233018
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н. , лично для меня это не особо важно... Что есть - то и есть.
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233077
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не считаю, что это плохо, просто нужно разумно воспринимать инструмент, иначе это ударит по самому же программисту.

А то просто часто вижу (я не имею ввиду это топик) людей которые пишут - "я вот сделал велосипед, теперь я хочу на нем летать".
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233143
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не полетит...
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233207
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Ладно, уговорили, при некоторой абстрации можно считать глобалы массивами.

Не надо такого снисхождения, это массивы и есть. :)


То есть данные в каше хранятся в виде "таблицы" из двух полей - ключ и значение, причем эта "таблица" хранится в B-дереве.
То есть строится B-дерево из ключей (которые "делаются" из индексов) + цепляются данные, тоже упакованные в одно значение.

А как хранятся массивы в других системах, не задумывались? :)


Отсюда и будут проблемы при задачах типа "хочу зафиксировать значение третьего индекса и пройти по первому"

И что из этого? Надо понимать особенности системы и уметь пользоваться тем что есть.
"Надо не воображать, а соображать" (c)


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

Ах вона что. Ну и что, что нет? Логически они есть. Указывая в глобальной ссылке один индекс,
я попадаю в то место, если другой - в другое. Чего еще нужно-то? А последнее предложение
вообще странное какое-то. Когда и где можно было найти значение в массиве не зная пути к нему, а? :) Или для вас array(a1,a2,a3,a4) чем-то отличается от ^array(a1,a2,a3,a4) ? Тогда я вам сочувствую.


Мое высказываение, что каше - не многомерная база, доказывать нужно?
Обязательно. Все нужно доказывать. :)
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233211
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.Их нет, этих индексов. И доступ ко второму индексу (вернее, второй половинке ключа) без знания первой - невозможен.


Почему невозможен? я это уже сделал, получил все существующие неповторяющиеся индексы на любом уровне, т.е. говоря Вашим языком получил "все вторые половинки ключей". Вообще, я рассматривал индексы как элемент данных, и чем это плохо? Кажется именно эту возможность представления данных в виде "частей ключа" (индексов) рекламируют создатели Cache. Поправте, если я не прав.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233222
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.

Мое высказываение, что каше - не многомерная база, доказывать нужно?

Докажите! мне оч. интересно, правда!
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233244
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLot Блок А.Н.Их нет, этих индексов. И доступ ко второму индексу (вернее, второй половинке ключа) без знания первой - невозможен.


Почему невозможен? я это уже сделал, получил все существующие неповторяющиеся индексы на любом уровне, т.е. говоря Вашим языком получил "все вторые половинки ключей".
А ему хочется "без перебора". :)
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233266
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotВообще, я рассматривал индексы как элемент данных, и чем это плохо?
Очень плохо (у вас точно). Т.к. вы не получаете мгновеный ответ на вопросы:
- Какие у вас фирмы производители?
- Какие у вас названия товара?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233293
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa CacheLotВообще, я рассматривал индексы как элемент данных, и чем это плохо?
Очень плохо (у вас точно). Т.к. вы не получаете мгновеный ответ на вопросы:
- Какие у вас фирмы производители?
- Какие у вас названия товара?
Как это? Он как раз их и получает, вводя их в индексы. По крайней мере я так его понял.
А вы?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233300
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei ObrastsovКак это? Он как раз их и получает, вводя их в индексы.
Так получает-то перебором всех "значимых" элементов массива. Или в тройном цикле...
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233328
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Sergei ObrastsovКак это? Он как раз их и получает, вводя их в индексы.
Так получает-то перебором всех "значимых" элементов массива. Или в тройном цикле...
Правильно. А что, должно быть как-то по-другому? Не ^x(Производитель, товар) ?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233334
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei ObrastsovА что, должно быть как-то по-другому?
Выше я привел пример трех таблиц т.с. альтернативного хранения. Я бы хранил все так.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233373
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Sergei ObrastsovА что, должно быть как-то по-другому?
Выше я привел пример трех таблиц т.с. альтернативного хранения. Я бы хранил все так.
Ага, я посмотрел. Без введения индексов это храние не стоит ничего. А с введением что вы получите, а? Подсказать или сами?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233388
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei ObrastsovБез введения индексов это храние не стоит ничего.
Вот тебе и раз! На вопросы-то мои я получу ответ явно быстрее. А что иметь индексы это уже плохо?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233397
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Sergei ObrastsovБез введения индексов это храние не стоит ничего.
Вот тебе и раз! На вопросы-то мои я получу ответ явно быстрее. А что иметь индексы это уже плохо?
Нет, без индексов никуда. Только вы получите ту же самую структуру ^x(Производитель, товар) . Вы этим гордитесь? :)
А кроме нее еще кучу лишних таблиц. Ну и нафига, спрашивается?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233399
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei ObrastsovНу и нафига, спрашивается?
А это уже каждый решает для себя сам.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233407
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei ObrastsovТолько вы получите ту же самую структуру ^x(Производитель, товар) .
А почему у вас только два индекса? У автора было их три.
Типа:
Код: plaintext
^x(Тип,Производитель, товар)
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233409
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Sergei ObrastsovНу и нафига, спрашивается?
А это уже каждый решает для себя сам.
Это не ответ. Впрочем, ладно, действительно. Нравится вам лепить плоские таблицы
в многомерных структурах - это ваше право.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233418
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Sergei ObrastsovТолько вы получите ту же самую структуру ^x(Производитель, товар) .
А почему у вас только два индекса? У автора было их три.
Типа:
Код: plaintext
^x(Тип,Производитель, товар)

У вас я там тоже Тип вроде как не заметил. Или я ошибаюсь просто?
Впрочем, я и не цеплялся за его структуру, это просто пример.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233423
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei ObrastsovУ вас я там тоже Тип вроде как не заметил.
Так у меня таблицы три. Под каждый интекс...
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233450
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Sergei ObrastsovУ вас я там тоже Тип вроде как не заметил.
Так у меня таблицы три. Под каждый интекс...
Видел что три, не увидел ТИП, ну да неважно. Важно, что вместо одного массива вы получите
6 минимум. Выигрыш, правда? Согласен, что лепить все в один массив даже по максималистским
меркам чересчур, но больше 4-х я никак не вижу. А скорее 2-х, если справочник сделать разумным. :)
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233485
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В деле формирования хранения даных в Каше много подходов...
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233490
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<script language="cache" runat="server">
f i= 1 : 1 :N { // N - Количество уровней (индексов)
w "<select name=""Level""",i,">"
s x="^Glob"
s list=##class(%ListOfDataTypes).%New()
 f {
	 Set x=$Query(@x)
	 Quit:x=""
	 If list.Find($QS(x,i))="" w "<option value=",$QS(x,i),">",$QS(x,i),"</option>"
	 d list.Insert($QS(x,i))

 }
w "</select>"
}
</script>

Вот так решилась моя проблема... в каждом генерируемом списке перечень "частей ключа" на каждом уровне... Мгновенно получить ответ на вопрос врядли можно.. на любой вопрос... токо Бог это может!
А как обойтись без цикла? По-моему невозможно ни при каком способе хранения.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233502
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotА как обойтись без цикла?
Вопрос не в цикле... Вопрос в количестве итераций.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233565
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLot , вот тебе другой подход к решению твоей задачи...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
PRIMER
 n
 s n= 3 
 s tmp=$na(^tmp)
 k @tmp
 d DATA
 d WRITE
 q
WRITE ; Вывод информации
 n i
 for i= 1 : 1 :n {
	 d LEVEL
 }
 q
LEVEL ; Очередной уровень
 n uz
 &html<"<select name="Level#(i)#">>
 s uz=$o(@tmp@(i,""))
 while uz'="" {
	 &html<<option value="#(uz)#">#(uz)#</option>>
	 s uz=$o(@tmp@(i,uz))
 }
 &html<</select>>
 q
DATA ; Анализ информации
 n x
 s x=$na(^Glob)
 while x'="" {
	 d ELEMENT
	 s x=$q(@x)
 
 }
 q
ELEMENT ; Очередной элемент
 n i
 for i=1:1:n {
	 d INDEX
 }
 q
INDEX ; Очередной индекс
 n ind
 s ind=$qs(x,i)
 q:ind=""
 q:$d(@tmp@(i,ind))
 s @tmp@(i,ind)=""
 q
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233573
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кавычки лишние я пропустил...
Код: plaintext
 &html<<select name="Level#(i)#">>
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233575
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
PRIMER
 n
 s n= 3 
 s tmp=$na(^tmp)
 k @tmp
 d DATA
 d WRITE
 q
WRITE ; Вывод информации
 n i
 for i= 1 : 1 :n {
	 d LEVEL
 }
 q
LEVEL ; Очередной уровень
 n uz
 &html<<select name="Level#(i)#">>
 s uz=$o(@tmp@(i,""))
 while uz'="" {
	 &html<<option value="#(uz)#">#(uz)#</option>>
	 s uz=$o(@tmp@(i,uz))
 }
 &html<</select>>
 q
DATA ; Анализ информации
 n x
 s x=$na(^Glob)
 while x'="" {
	 d ELEMENT
	 s x=$q(@x)
 }
 q
ELEMENT ; Очередной элемент
 n i
 for i= 1 : 1 :n {
	 d INDEX
 }
 q
INDEX ; Очередной индекс
 n ind
 s ind=$qs(x,i)
 q:ind=""
 q:$d(@tmp@(i,ind))
 s @tmp@(i,ind)=""
 q
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35233689
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
PRIMER
 n
 s n= 3 
 s tmp=$na(^tmp)
 k @tmp
 d DATA
 d WRITE
 q
WRITE ; Вывод информации
 n i
 for i= 1 : 1 :n {
	 d LEVEL
 }
 q
LEVEL ; Очередной уровень
 n uz
 &html<<select name="Level#(i)#">>
 s uz=$o(@tmp@(i,""))
 while uz'="" {
	 &html<<option value="#(uz)#">#(uz)#</option>>
	 s uz=$o(@tmp@(i,uz))
 }
 &html<</select>>
 q
DATA ; Анализ информации
 n x
 s x=$na(^Glob)
 while x'="" {
	 d ELEMENT
	 s x=$q(@x)
 }
 q
ELEMENT ; Очередной элемент
 n i
 for i= 1 : 1 :n {
	 d INDEX
 }
 q
INDEX ; Очередной индекс
 n ind
 s ind=$qs(x,i)
 q:ind=""
 q:$d(@tmp@(i,ind))
 s @tmp@(i,ind)=""
 q


Работает:) Но разве очевидно, что в вашем скрипте меньше итераций? Мне лично не очевидно... считать надо... походу
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35234314
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну понаписали то...

Sergei ObrastsovА как хранятся массивы в других системах, не задумывались? :)
Не надо отвечать вопросом на вопрос, загадочно подразумевая что все дураки, и только вы умный.

Sergei ObrastsovОбязательно. Все нужно доказывать. :)
Не всем нужно доказывать. С некоторыми людьми спор бесполезен.

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

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

Sergei ObrastsovАга, я посмотрел. Без введения индексов это храние не стоит ничего. А с введением что вы получите, а? Подсказать или сами?
Он использует индексы! на костер его!
Ну подскажите, что же такое страшное мы получим? Я прямо таки теряюсь в догадках.

Sergei ObrastsovНет, без индексов никуда. Только вы получите ту же самую структуру ^x(Производитель, товар). Вы этим гордитесь? :)
А кроме нее еще кучу лишних таблиц. Ну и нафига, спрашивается?
Нда... Тут уж нам с krvsa есть повод выдержать многозначительную паузу.

Для начала, Сергей, поищите что такое нормализация и нафига она нужна?
Это ответ на то, зачем нужно много таблиц.

Да и в целом решение типв ^Global(тип, производитель, цвет, размер, год выпуска)
В данном случае не приемлимо!
Вы можете считать, но не сбивайте людей.
Сделав один такой индекс, вы сами себя бьете по рукам.
Если хотя бы предполагаются запросы типа "выбрать все для данного года выпуска", то практически сложно что-то придумать кроме прямого перебора всех узлов.
А представьте, что данные занимают пару гигов хотя бы? И запросов будет ну хотя бы штук 10 =в секунду? Что вы будете делать в этом случае? Городить рядом еще один индексный глобал?
Можно и так, но зачем с самого начала надевать штаны через голову?

решение
^Global(тип, производитель, цвет, размер, год выпуска)
имеет смысл, но когда каждый следующий индекс не имеет смысла без предыдущего.
Например информация о классах каше хранится в структуре типа
^oddDEF(класс,"a",поле,15)=тип_поля
В данном случае имя поля не имеет смысла без имени класса, и код значения 15 бессмысленен без класса и поля
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35234361
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мдя.... не ожидал
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35234552
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.
Sergei ObrastsovА как хранятся массивы в других системах, не задумывались? :)
Не надо отвечать вопросом на вопрос, загадочно подразумевая что все дураки, и только вы умный.

Я не увидел там вопроса. Одни утверждения, причем сомнительные.


А многомерная база данных подразумевает равенство всех измерений массива.
В каше этого нет.

Вот те на. А что же есть в Cache? Или без жестких ограничений и программировать неинтересно?


Я не вижу вашего решения, но вряд ли вы что-то придумали кроме прямого перебора.
А в "боевых" системах это неприемлимо.

Ой. А что же такого еще есть в "боевых" системах, окромя индексов? Ничего нету, правда?
Ну так и здесь та же фигня.


Нда... Тут уж нам с krvsa есть повод выдержать многозначительную паузу.
Для начала, Сергей, поищите что такое нормализация и нафига она нужна?

"Для начала" не надо считать других глупее себя. Это так, к слову.


Это ответ на то, зачем нужно много таблиц.

Это неправильный ответ. Из серии "нас только так учили и по-другому мы не умеем".


Да и в целом решение типв ^Global(тип, производитель, цвет, размер, год выпуска)
В данном случае не приемлимо!
Вы можете считать, но не сбивайте людей.
Сделав один такой индекс, вы сами себя бьете по рукам.
Если хотя бы предполагаются запросы типа "выбрать все для данного года выпуска", то практически сложно что-то придумать кроме прямого перебора всех узлов.
А представьте, что данные занимают пару гигов хотя бы? И запросов будет ну хотя бы штук 10 =в секунду? Что вы будете делать в этом случае? Городить рядом еще один индексный глобал?
Можно и так, но зачем с самого начала надевать штаны через голову?

Не надо утрировать, хорошо? У человека простенькая задачка, максимум сотня-две записей.
Вид запросов, надо полагать, он себе представляет прекрасно. Значит его эта структура устраивает. Кроме того, на таком объеме можно позволить себе и не заморачиваться с лишней
индексацией, хватит и того, что есть. Выигрыш? Уже существующий основной индекс и отсутствие
кучи таблиц. Все остальное можно сделать.

А теперь по существу. Нет, я не предлагаю именно так структурировать БД. Нет, я так не делаю
и не считаю это правильным. Только возможным. Доступно?


^Global(тип, производитель, цвет, размер, год выпуска)
имеет смысл, но когда каждый следующий индекс не имеет смысла без предыдущего.
Например информация о классах каше хранится в структуре типа
^oddDEF(класс,"a",поле,15)=тип_поля
В данном случае имя поля не имеет смысла без имени класса, и код значения 15 бессмысленен без класса и поля
Пожалуйста, не надо мне пояснять что такое иерархическая структура, я догадываюсь и так.

Выводы:
1. Мне так и не доказали отсутствие многомерности в Cache. Ссылки на MDBMS несколько
неуместны, мало ли у кого какие тараканы в избе. Никто не запрещает мне делать "кубы" или
прочие массивы равной размерности.
2. С "псевдо-массивами" в Cache тоже пролет. Не надо смешивать горячее с зеленым .
Я про логическое восприятие массивов данных и их физическое воплощение. Трудно реляционщикам с иерархическими структурами, все время хочется их подогнать под привычное.
Сочувствую, много теряется при таком подходе.
3. Мы до этого еще не дошли, но я уже чувствую, что вопрос о "переборе" обязательно возникнет.
Сразу напомню, что "перебор" есть везде. Даже если он скрыт в исполнителе запросов.
4. Жаль, что вы мне так и не ответили на поставленные мною вопросы. И вообще уклонились от темы массивов и индексов. А зря. :)
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35234602
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей, у меня нет желания с вами спорить.
Вы считате, что преуспевли в риторике - не буду вас переубеждать.
Пусть ваша методика спора останется на вашей совести (а моя на моей :-).

Sergei Obrastsovнас только так учили и по-другому мы не умеем
Я боюсь предположить, как вы потребляете пищу. Наверное не так, как учили, да?
Кстати, работать я умею по разному, и весьма малую часть из этого я взял из книг ;-)

Sergei Obrastsov У человека простенькая задачка, максимум сотня-две записей.
Во, к чему пришли то. А нафига наворачивать хранение? На сотню-две записей стандартное удобнее, не считаете?

Sergei Obrastsov Блок А.Н.решение типа ^Global(тип, производитель, цвет, размер, год выпуска)
Нет, я не предлагаю именно так структурировать БД. Нет, я так не делаю
и не считаю это правильным.

Нифига себе поворот. Я столько с вами спорю, доказывая, что в данном случае такое хранение неоправдано - и вот те раз, оказывается вы тоже так считаете.
О чем спор то?

Sergei Obrastsov1. Мне так и не доказали отсутствие многомерности в Cache. Ссылки на MDBMS несколько
неуместны, мало ли у кого какие тараканы в избе. Никто не запрещает мне делать "кубы" или
прочие массивы равной размерности.
Утверждение, что многомерность подразумевает равность измерений вы проигнорировали.
А руками знаете, и в аксесе можно сделать "многомерность". У нас аксес тоже "многомерная" СУБД ?
Глобалы - не многомерные кубы, с этим согласитесь?

Sergei ObrastsovТрудно реляционщикам с иерархическими структурами, все время хочется их подогнать под привычное.
Сочувствую, много теряется при таком подходе.
Смешно, но можно прокомментировать почти каждое слово вашего высказывания.
>Трудно - да нет, нисколько. Поверьте на слово. Или тоже скажете - без доказательств недействительно?
>Реляционщикам - Да я скорее С++ шник (Но ограниченно использую объкты каше)
>все время -
>хочется -
>их подогнать под привычное - у меня нет привычного и непривычного. Есть знакомое и назнакомое
>Сочувствую, много теряется при таком подходе - При моем подходе (использовать для каждой задачи наиболее удобные методы решения, также при решении знать, как работет движек) теряются только лишние проблемы.

Я признал, что логически глобалы можно считать массивами.
Перебор есть не всегда. Но в любом случае даже если мне надо выбрать 100 записей из 100000000 - я не пойду прямым перебором

авторЖаль, что вы мне так и не ответили на поставленные мною вопросы. И вообще уклонились от темы массивов и индексов. А зря. :)
У вас было много вопросов ни о чем, возможно я что-то пропустил

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

В этом суть спора. Если вам есть что возразить по этому абзацу, говорите.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35234621
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н. Sergei Obrastsov Блок А.Н.решение типа ^Global(тип, производитель, цвет, размер, год выпуска)
Нет, я не предлагаю именно так структурировать БД. Нет, я так не делаю
и не считаю это правильным.

Нифига себе поворот. Я столько с вами спорю, доказывая, что в данном случае такое хранение неоправдано - и вот те раз, оказывается вы тоже так считаете.
О чем спор то?

Что значит "оправдано/неоправдано"? Человек говорит об использовании данных в индексах
и как пример приводит гипотетическую задачу. Вы с kvrsa уже наворачиваете на это гигабайтное
хранение и прочие премудорости? Нафига так утрировать-то? Что касается меня, то у меня таких
простеньких задач нет, поэтому приходится использовать более общие подходы.


Утверждение, что многомерность подразумевает равность измерений вы проигнорировали.

Я всегда полагал, что многомерность равна многоуровневости. Причем тут равность измерений?


А руками знаете, и в аксесе можно сделать "многомерность". У нас аксес тоже "многомерная" СУБД ?

Access - плоские таблицы. Где вы там собрались делать многомерность?


Глобалы - не многомерные кубы, с этим согласитесь?

Глобалы - это глобалы. А уж что я из них захочу сделать, то и получится. И одномерные массивы,
и плоские таблицы, и многомерные "кубы", если захотите.


Я признал, что логически глобалы можно считать массивами.

Честь и хвала. Осталось только убедиться в том, что из них можно делать все, что угодно.
Поскольку они не фиксированы размерностью.


Перебор есть не всегда. Но в любом случае даже если мне надо выбрать 100 записей из 100000000 - я не пойду прямым перебором

А я говорил про прямой перебор? По-моему речь шла о переборе вообще. Разве я отрицаю
необходимость индексов?


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

В Cache, как и вообще в M, все структуры - деревья. И одновременно массивы.
Может хватит уже так уклончиво об этом говорить. Почему это X(A1,A2) - это массив,
а ^X(A1,A2) - уже нет? А что насчет структуры автора, то я не думаю, что ему потребуются
запросы типа "количество процессоров с разбивкой по производителям".


Еще я утверждаю и в данной задаче удобнее использовать плоскую индексированную таблицу Одноуровневое дерево, либо одномерный массив, если хотите, но понятие таблица использовать здесь удобнее.

Это ваше право, опять же. Только к нему вы пристроите минимум 3 индекса и получите 6 массивов. Учитывая что многофункциональных запросов к этой задаче быть не может, то возникает вопрос - а нафига этот огород нужен? Чтобы как у всех?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35234686
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВы с kvrsa уже наворачиваете на это гигабайтное
хранение
и прочие премудорости
Когда мы говорим о неоптимальности, вы говорите "задача на сотню-другую записей", а когда о занимаемом месте - "гигабайтное хранение". Вы уж определитесь как-нибудь.
А вообще мы предлагаем самое простое хранение.
В данной задаче (по крайней мере той части, что мы видели) хранение данных в индексах как зайцу пятая нога. И вы конечно же это понимате, но из каких-то принципов сопротивляетесь.

Sergei ObrastsovЯ всегда полагал, что многомерность равна многоуровневости. Причем тут равность измерений?
Неверно. Сколько уровней в здании, где вы работает и сколько размерностей?
В размерностях вы можете перемещаться в любой сторону - вправо, влево и даже подпрыгнуть вверх, а вот по уровням (этажам) вам приедтся перемещаться последовательно.

Sergei ObrastsovAccess - плоские таблицы. Где вы там собрались делать многомерность?
Каше - деревья. Однако же сделали и таблицы и классы.

Sergei ObrastsovА я говорил про прямой перебор? По-моему речь шла о переборе вообще. Разве я отрицаю необходимость индексов?
В предложенной автором задаче остается примой перебор (из-за неоптимального проектирования данных). А индексы - да, это "гигабайтное хранение", вы его отрицаете.

Sergei ObrastsovА что насчет структуры автора, то я не думаю, что ему потребуются
запросы типа "количество процессоров с разбивкой по производителям
А я вот таких предположений что "не потребуется" не делаю (и опыт подтверждает - да, скорее всего потребуется). И куда потом идти с таким единственным жестко заданым индексом? Прямой перебор?

автормногофункциональных запросов к этой задаче быть не может
Такое ощущение, что вы в курсе задачи и сами предложили автору такое хранение?
Пока только этим объясняется такое яростное отстаивание этого типа хранения (неоправданного на мой взгляд) и такие для пророческие(для постороннего человека) утверждения.

автора нафига этот огород нужен
И действительно - нафига?
Тем более из-за этого огорода придется перебирать все данные вручную при любом нестандартном запросе. А простое дефолтное хранение позволяет легко перестраиваться под любые новые запросы.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35234698
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLot , дело даже не в количестве итераций... Думаю мой вариант будет работать быстрее (проверьте если не трудно), чем больше будет ваш массив. Поскольку в вашем варианте он читается N-раз, а у меня один.
Правда мой текст "медленнее".

Меня попрежнему интересует для чего вам нужны такие select? Какой в них смысл?
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35234745
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Когда мы говорим о неоптимальности, вы говорите "задача на сотню-другую записей", а когда о занимаемом месте - "гигабайтное хранение". Вы уж определитесь как-нибудь.

Про "гигабайты" заговорили вы, а не я.


В данной задаче (по крайней мере той части, что мы видели) хранение данных в индексах как зайцу пятая нога. И вы конечно же это понимате, но из каких-то принципов сопротивляетесь.

Я не вижу в этом ничего плохого. В условиях этой задачи.


Sergei ObrastsovЯ всегда полагал, что многомерность равна многоуровневости. Причем тут равность измерений?
Неверно. Сколько уровней в здании, где вы работает и сколько размерностей?
В размерностях вы можете перемещаться в любой сторону - вправо, влево и даже подпрыгнуть вверх, а вот по уровням (этажам) вам приедтся перемещаться последовательно.

То есть двумерный массив, это не A(x,y), как я полагал, а A(1-2)? Я вас правильно понял?


Sergei ObrastsovAccess - плоские таблицы. Где вы там собрались делать многомерность?
Каше - деревья. Однако же сделали и таблицы и классы.

В Cache можно сделать почти все, а вот наоборот вряд ли получится. Потому повторяю вопрос.


Sergei ObrastsovА я говорил про прямой перебор? По-моему речь шла о переборе вообще. Разве я отрицаю необходимость индексов?
В предложенной автором задаче остается примой перебор (из-за неоптимального проектирования данных). А индексы - да, это "гигабайтное хранение", вы его отрицаете.

Не надо мне приписывать то, чего я не говорю. В прошлом письме я говорил что не имею ничего
против индексов. Если они не зряшные.


А я вот таких предположений что "не потребуется" не делаю (и опыт подтверждает - да, скорее всего потребуется). И куда потом идти с таким единственным жестко заданым индексом? Прямой перебор?

Нет, дополнительные индексы. Как и у вас. Если вдруг возникнет такая необходимость.
Хотя, если она вдруг возникнет, то встанет вопрос об осмысленности первоначальной структуры.


Такое ощущение, что вы в курсе задачи и сами предложили автору такое хранение?
Пока только этим объясняется такое яростное отстаивание этого типа хранения (неоправданного на мой взгляд) и такие для пророческие(для постороннего человека) утверждения.

Просто я представляю что он делает.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35234811
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПро "гигабайты" заговорили вы, а не я.
Мы заговорили о гигабайтных объемах данных, также о том, что предложенный нами подход успешно работает с этими данными. Вы почему-то передергиваете и ставите все наоборот - раз мы используем такой подход, то у нас "гигабайтное хранение".
Меня ваша методика спора уже серьезно раздражает. Вы ничего не говорите, но постоянно передергивате слова, пытаясь поставить подножку, при этом стараетесь сами стараетесь ничего не сказать по делу.

авторЯ не вижу в этом ничего плохого. В условиях этой задачи.
А я вижу. Именно в условиях данной задачи.
Зато вы почему-то видите что-то плохое в стандартном хранении.
Все это напоминает переливание из пустого в порожнее.

авторТо есть двумерный массив, это не A(x,y), как я полагал, а A(1-2)? Я вас правильно понял?
А теперь на более русском можно?

авторВ Cache можно сделать почти все, а вот наоборот вряд ли получится. Потому повторяю вопрос.
Где повторяете? Я не вижу повторенного вопроса. Это? "Где вы там собрались делать многомерность?"
Лично я и именно в аксессе не собираюсь делать многомерное представление
OLAP - кубы делают разве не поверх реляционных таблиц?
Что-то такое можэно сделать даже в экселе

авторВ прошлом письме я говорил что не имею ничего
против индексов. Если они не зряшные.
Как раз вы отставаете необходимость именно зряшного. А необходимость других индексов вы отрицатете, т.к. это "гигабайтное хранение"

Впрочем я уже раза три наверно сказал все, если не будет новых аргументов, то говорить дальше не о чем.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35234866
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, давайте жить дружно.
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35235290
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще я считаю лучше придерживаться стандартного хранения, если это возможно. Ибо все нестандартное неизбежно ведет к ошибкам, трудности дальнейшей доработки и сопровождения. Вы ведь можете уйти, а другому человеку это разгребать и дописывать что-то. Сам сталкивался с таким, трудно очень бывает разобраться где и что лежит и за что отвечает, особенно если нет никакого описания (на что часто не хватает времени у разработчиков). К тому же при нестандартном хранения вы сразу отсекаете возможность доступа к данным через SQL, что очень удобно бывает порой.

Лучше несколько лишних глобалов в системе, чем головная боль и геморрой на жёппе. :)
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35235611
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NoGot , задачи-то разные бывают. Т.ч. не стоит отказываться от "простого" хранения в глобалах со сложным ветвлением, если ето будет давать хорошее ускорение при обработке данных...
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
функция $O или что то другое..?
    #35235702
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я и не утверждал, что нужно совсем отказываться от этого. Но такие случаи довольно редки. Обычно все хорошо укладывается в классы.
...
Рейтинг: 0 / 0
66 сообщений из 66, показаны все 3 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / функция $O или что то другое..?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]