|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
Проблема такая: решил использовать колоночную структуру данных в GT.M. Тоесть: Set ^Users("name",1)="Sergey" Set ^Users("email",1)="..." и так далее Или как вариант - поменять индексы: Set ^Users(1,"name")="Sergey" Set ^Users(1,"email")="..." и так далее Вопрос: как например по значению колонки (поля) найти id рядка? в двух вариантах? Возможно, кстати, создавать оба варианта? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 16:21 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
Set ^UsersIndex("name","Sergey",1)="" Set id = $o(^UsersIndex("name","Sergey")) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 16:56 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
В смысле - только через промежуточную структуру для хранения индексов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 16:58 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
13-й ПилигримВ смысле - только через промежуточную структуру для хранения индексов. Тоесть еще порождать кучу значений индексов для этой цели? А база данных расти будет... :( Блин надо экспресс-курс MUMPS пройти... Возможно проще все это делать в классическом варианте Key-Value? Set ^Users(1)="Sergey~...~..." ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 17:05 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
SergeyLee13-й ПилигримВ смысле - только через промежуточную структуру для хранения индексов. Тоесть еще порождать кучу значений индексов для этой цели? А база данных расти будет... Конечно. А как вы думает устроено хранение по-умолчанию? ^TableNameD - глобал с данными ^TableNameI - глобал с индексами SergeyLeeВозможно проще все это делать в классическом варианте Key-Value? Set ^Users(1)="Sergey~...~..." Проще для чего? Как поиск будете осуществлять в таком случае? Только перебором... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 17:12 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
13-й ПилигримSergeyLeeпропущено... Тоесть еще порождать кучу значений индексов для этой цели? А база данных расти будет... Конечно. А как вы думает устроено хранение по-умолчанию? ^TableNameD - глобал с данными ^TableNameI - глобал с индексами SergeyLeeВозможно проще все это делать в классическом варианте Key-Value? Set ^Users(1)="Sergey~...~..." Проще для чего? Как поиск будете осуществлять в таком случае? Только перебором... Ага. Спасибо! :) А то я завис))) Параллельно читаю тут главу "Технология работы с глобалями"... Спасибо за мысль о глобалах) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 17:20 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
[quot 13-й Пилигрим]SergeyLeeпропущено... Тоесть еще порождать кучу значений индексов для этой цели? А база данных расти будет... Конечно. А как вы думает устроено хранение по-умолчанию? ^TableNameD - глобал с данными ^TableNameI - глобал с индексами Кстати, а какой вариант глобала с данными лучше? ^Users(1,"name")="Sergey" или ^Users("name",1)="Sergey" Так как этот глобал будет использоваться в основном для получения (изменения) значения поля "name", то для доступа ко всем полям удобнее первый вариант: Set user=$get(^Users(uid,"name"))_"~"_$get(^Users(uid,"email")) Или есть еще какая то неизвестная мне магия для второго варианта? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 17:37 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
Сергей, мы же в первых топиках рассказывали и ссылки даже показывали. servit даже материал на русском указал ссылку. Там очень доступно рассказано про структуру глобалов и методов хранения http://gradvs1.mgateway.com/docs/nosql_in_globals.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 17:50 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
Вот ссылка на перевод http://blogerator.ru/page/nosql-vvedenie-v-teoriju-bd ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 17:58 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
ValeriuСергей, мы же в первых топиках рассказывали и ссылки даже показывали. servit даже материал на русском указал ссылку. Там очень доступно рассказано про структуру глобалов и методов хранения http://gradvs1.mgateway.com/docs/nosql_in_globals.pdf Это только структуры и методы хранения, но никак не как с этим всем потом работать - поиск и прочее :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 18:13 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
13-й ПилигримSet id = $o(^UsersIndex("name","Sergey")) Это кстати возвращает следующую запись, а не id записи :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 18:16 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
Это только структуры и методы хранения, но никак не как с этим всем потом работать - поиск и прочее :) Ну.. это нужно читать. Тоже совсем не сложно Джон Левкович. Где-то я встречал . Не помню где... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 18:21 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
Выслал. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 18:22 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
SergeyLeeЭто только структуры и методы хранения, но никак не как с этим всем потом работать - поиск и прочее :) Прямой доступ и глобалы ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 18:25 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
ValeriuЭто только структуры и методы хранения, но никак не как с этим всем потом работать - поиск и прочее :) Ну.. это нужно читать. Тоже совсем не сложно Джон Левкович. Где-то я встречал . Не помню где... Его и читаю... А вот пример: Set ^UsersIndex("name","Sergey",1)="" Set id = $o(^UsersIndex("name","Sergey")) возвращает не 1, а следующий элемент) вот читал-читал, а как получить 1 в данном случае не помню :( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 18:39 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
нашел ответ сам) Set id=$o(^UsersIndex("name","Sergey","")) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 18:55 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
Читай еще про про функцию $DATA ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2012, 18:58 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
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 должны выполняться в обной транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2012, 22:43 |
|
Выборка в колоночной структуре данных
|
|||
---|---|---|---|
#18+
DirksDRSergeyLee, Кстати, а какой вариант глобала с данными лучше? ^Users(1,"name")="Sergey" или ^Users("name",1)="Sergey" На мой взгляд вариант ^Users(id_user,"name")="Sergey" предпочтительней. Спасибо огромное :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 12:47 |
|
|
start [/forum/topic.php?fid=39&msg=38070307&tid=1557287]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
147ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 230ms |
0 / 0 |