powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Выборка в колоночной структуре данных
19 сообщений из 19, страница 1 из 1
Выборка в колоночной структуре данных
    #38070064
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема такая: решил использовать колоночную структуру данных в GT.M.
Тоесть:
Set ^Users("name",1)="Sergey"
Set ^Users("email",1)="..."
и так далее
Или как вариант - поменять индексы:
Set ^Users(1,"name")="Sergey"
Set ^Users(1,"email")="..."
и так далее

Вопрос: как например по значению колонки (поля) найти id рядка? в двух вариантах?
Возможно, кстати, создавать оба варианта?
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070160
13-й Пилигрим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set ^UsersIndex("name","Sergey",1)=""

Set id = $o(^UsersIndex("name","Sergey"))
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070168
13-й Пилигрим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле - только через промежуточную структуру для хранения индексов.
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070182
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
13-й ПилигримВ смысле - только через промежуточную структуру для хранения индексов.
Тоесть еще порождать кучу значений индексов для этой цели? А база данных расти будет... :( Блин надо экспресс-курс MUMPS пройти...
Возможно проще все это делать в классическом варианте Key-Value?
Set ^Users(1)="Sergey~...~..."
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070194
13-й Пилигрим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyLee13-й ПилигримВ смысле - только через промежуточную структуру для хранения индексов.
Тоесть еще порождать кучу значений индексов для этой цели? А база данных расти будет...

Конечно. А как вы думает устроено хранение по-умолчанию?
^TableNameD - глобал с данными
^TableNameI - глобал с индексами

SergeyLeeВозможно проще все это делать в классическом варианте Key-Value?
Set ^Users(1)="Sergey~...~..."
Проще для чего? Как поиск будете осуществлять в таком случае? Только перебором...
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070206
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
13-й ПилигримSergeyLeeпропущено...

Тоесть еще порождать кучу значений индексов для этой цели? А база данных расти будет...

Конечно. А как вы думает устроено хранение по-умолчанию?
^TableNameD - глобал с данными
^TableNameI - глобал с индексами

SergeyLeeВозможно проще все это делать в классическом варианте Key-Value?
Set ^Users(1)="Sergey~...~..."
Проще для чего? Как поиск будете осуществлять в таком случае? Только перебором...

Ага. Спасибо! :) А то я завис))) Параллельно читаю тут главу "Технология работы с глобалями"...
Спасибо за мысль о глобалах)
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070234
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot 13-й Пилигрим]SergeyLeeпропущено...

Тоесть еще порождать кучу значений индексов для этой цели? А база данных расти будет...

Конечно. А как вы думает устроено хранение по-умолчанию?
^TableNameD - глобал с данными
^TableNameI - глобал с индексами

Кстати, а какой вариант глобала с данными лучше?
^Users(1,"name")="Sergey"
или
^Users("name",1)="Sergey"
Так как этот глобал будет использоваться в основном для получения (изменения) значения поля "name", то для доступа ко всем полям удобнее первый вариант:
Set user=$get(^Users(uid,"name"))_"~"_$get(^Users(uid,"email"))

Или есть еще какая то неизвестная мне магия для второго варианта? :)
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070260
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей, мы же в первых топиках рассказывали и ссылки даже показывали.
servit даже материал на русском указал ссылку.
Там очень доступно рассказано про структуру глобалов и методов хранения
http://gradvs1.mgateway.com/docs/nosql_in_globals.pdf
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070270
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ссылка на перевод
http://blogerator.ru/page/nosql-vvedenie-v-teoriju-bd
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070294
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValeriuСергей, мы же в первых топиках рассказывали и ссылки даже показывали.
servit даже материал на русском указал ссылку.
Там очень доступно рассказано про структуру глобалов и методов хранения
http://gradvs1.mgateway.com/docs/nosql_in_globals.pdf

Это только структуры и методы хранения, но никак не как с этим всем потом работать - поиск и прочее :)
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070300
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
13-й ПилигримSet id = $o(^UsersIndex("name","Sergey"))

Это кстати возвращает следующую запись, а не id записи :)
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070307
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это только структуры и методы хранения, но никак не как с этим всем потом работать - поиск и прочее :)
Ну.. это нужно читать. Тоже совсем не сложно
Джон Левкович. Где-то я встречал . Не помню где...
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070310
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выслал.
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070314
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyLeeЭто только структуры и методы хранения, но никак не как с этим всем потом работать - поиск и прочее :) Прямой доступ и глобалы
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070338
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValeriuЭто только структуры и методы хранения, но никак не как с этим всем потом работать - поиск и прочее :)
Ну.. это нужно читать. Тоже совсем не сложно
Джон Левкович. Где-то я встречал . Не помню где...

Его и читаю...

А вот пример:
Set ^UsersIndex("name","Sergey",1)=""
Set id = $o(^UsersIndex("name","Sergey"))
возвращает не 1, а следующий элемент)
вот читал-читал, а как получить 1 в данном случае не помню :(
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070360
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нашел ответ сам)
Set id=$o(^UsersIndex("name","Sergey",""))
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38070367
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читай еще про про функцию $DATA
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38071210
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyLee,

Кстати, а какой вариант глобала с данными лучше?
^Users(1,"name")="Sergey"
или
^Users("name",1)="Sergey"

На мой взгляд вариант ^Users(id_user,"name")="Sergey" предпочтительней. В этом случае все данные об одном пользователе id_user
лежат в смежных записях, на одной странице БД.
Второй вариант разбрасывает данные пользователя по глобали. Все фамилии в начало глобали, все даты рождения в конец,
адреса в середину.
Если данных много, потребуется больше обращений к диску, чтобы собрать данные по нужному пользователю.

Если хотите, чтобы поиск работал быстро, то придется и индексы вручную построить, а может и данные продублировать.
Например:
Set ^Users(1)="Sergey~...~...~login~password"
и
Set ^UsersIndex("name","Sergey",1)="login~password"
т.е.часть полей данных вынести еще и в индекс. Тогда часть запросов не потребует обращения к глобали данных.
Обе эти команды Set должны выполняться в обной транзакции.
...
Рейтинг: 0 / 0
Выборка в колоночной структуре данных
    #38072254
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DirksDRSergeyLee,

Кстати, а какой вариант глобала с данными лучше?
^Users(1,"name")="Sergey"
или
^Users("name",1)="Sergey"

На мой взгляд вариант ^Users(id_user,"name")="Sergey" предпочтительней.

Спасибо огромное :)
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Выборка в колоночной структуре данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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