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