Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
 Re: PostgreSQL или MySQL вместо Oracle  [new]
LeXa NalBat
Member

Откуда: Москва
Сообщений: 2892
йа_тупиццо,

https://www.sql.ru/forum/actualtopics.aspx?search=custom_variable_classes&bid=7

https://www.sql.ru/forum/actualthread.aspx?tid=517064#5184022
21 апр 09, 12:14    [7091071]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
Favn
Member

Откуда:
Сообщений: 585
LeXa NalBat
javajdbc
Есть ли в ПостГресе переменные как у Мускл-а?
(не в ПЛ/СКЛ а имено в СКЛ-е)
можно сделать с помощью custom_variable_classes
Более корректным был бы вопрос - "а зачем имено в СКЛ-е?"
21 апр 09, 12:14    [7091073]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
javajdbc
Member

Откуда: Montreal
Сообщений: 17715
ОКТОГЕН,LeXa NalBat,йа_тупиццо

Спасибо , здорово что ПостГрес заимел аналитику.
21 апр 09, 15:22    [7092694]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
javajdbc
Member

Откуда: Montreal
Сообщений: 17715
Favn
LeXa NalBat
javajdbc
Есть ли в ПостГресе переменные как у Мускл-а?
(не в ПЛ/СКЛ а имено в СКЛ-е)
можно сделать с помощью custom_variable_classes
Более корректным был бы вопрос - "а зачем имено в СКЛ-е?"


С переменными в МуСКЛ можно делать много интересного.
Например ROWNUM которого нет в МУСКЛ (непонятно почему).
На переменных можно делать много аналитических функций:
топ-Н, лаг-лид, движушееся окно, накопление с разбивкой, итд.

Кроме того, например такая задача решена на МуСКЛ-е с перемеными:
имеются две НЕСВЯЗАНЫЕ таблицы.
1. Таблица задач с требуемым количеством людей на задачу:
2- Таблица людей-работников
Необходимо распределить работников по задачам.

TASK
T_id description resources
1"calculation"2
2"managing"1
3"washing"2


RESOURCES
R_id name
1"Vasia"
2"Natasha"
3"Alex"
4"Freddy"
5"Petia"


На выходе получить распределение людей по задачам
(допустим, задачи и люди отсортированы по ИД)

T_id R_id
11
12
23
34
35


Как решит такую (екзоотическую) задачу ПостГрес на СКЛ-е?
21 апр 09, 15:41    [7092857]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
дддддд
Guest
Может лучше создать таблицу для связи много-ко-многим и не париться?
21 апр 09, 15:50    [7092939]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
javajdbc
Member

Откуда: Montreal
Сообщений: 17715
Пояснение -- плохо назвал колонки.
Последняя колонка в таблице ТАСК
НЕ является связкой (ето НЕ форенг кей) на таблицу РЕСОРСЕС.
Ето требуемое для задачи количество людей.
21 апр 09, 15:52    [7092953]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
javajdbc
Member

Откуда: Montreal
Сообщений: 17715
дддддд
Может лучше создать таблицу для связи много-ко-многим и не париться?


Ну фактически ето задача заполнения такой много-ко-много таблицы
21 апр 09, 15:53    [7092964]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
дддддд
Guest
Какой смысл из обычной задачи создавать экзотическую?
Наверняка на практике задачи должны иметь более расширенные атрибуты.
например уровень сложности, срочность, важность, и т.д.
А у ресурсов могут быть реквизиты такие как опыт работы, направление, знания различных ЯП и т.д.
как это все увязать без промежуточной таблицы?
(хотя на самом деле - это главная таблица)
21 апр 09, 16:03    [7093055]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
Sad Spirit
Member

Откуда:
Сообщений: 569
javajdbc

С переменными в МуСКЛ можно делать много интересного.
Например ROWNUM которого нет в МУСКЛ (непонятно почему).

Для этого в PostgreSQL лучше использовать CREATE TEMPORARY SEQUENCE
21 апр 09, 16:08    [7093095]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
ОКТОГЕН
Member

Откуда:
Сообщений: 2498
Sad Spirit, голову ломать лень, но если ты думаешь об этом...
21 апр 09, 17:01    [7093549]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
ОКТОГЕН
Member

Откуда:
Сообщений: 2498
ОКТОГЕН
Sad Spirit, голову ломать лень, но если ты думаешь об этом...

Очепятка, обращение к javajdbc
21 апр 09, 17:02    [7093556]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
javajdbc
Member

Откуда: Montreal
Сообщений: 17715
ОКТОГЕН,

ага, точно, по линку -- ето "аналитика" (как такие функции назвали в Оракле).
спасибо!
21 апр 09, 17:22    [7093761]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
javajdbc
Member

Откуда: Montreal
Сообщений: 17715
дддддд
Какой смысл из обычной задачи создавать экзотическую?
Наверняка на практике задачи должны иметь более расширенные атрибуты.
например уровень сложности, срочность, важность, и т.д.
А у ресурсов могут быть реквизиты такие как опыт работы, направление, знания различных ЯП и т.д.
как это все увязать без промежуточной таблицы?
(хотя на самом деле - это главная таблица)


ОК, задача дана так как она поставлена:
Приходит один заказчик, говорит, мне нужно 5 работников -- ему выдают
5 работников (в простейшем случае отсортированые по ИД).
приходит другоиз заказчик, просит 3 работника.
Таперь представим: заказы собираются за целый день и распределяются в конце дня
по мере поступления или по ИД. Все работники могут делать все работы;
работников заведомо достаточно для всех заказов.

(Приоритеты задач и "опытность" работников могут повлиять только на
ордер бай блок, который тут не важен семь раз)
21 апр 09, 17:31    [7093835]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
дддддд
Guest
Это что - курсовик?
21 апр 09, 17:40    [7093925]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
javajdbc
Member

Откуда: Montreal
Сообщений: 17715
дддддд
Это что - курсовик?


Ето пример что может мускл с переменными , как часть ответа на вопрос Favn.
В тоже время интерсно знать если ПостГрес может решать такие
нестандартные задачи.
(надо посмотреть на того студента который решит такой курсовичек! :-)) )
21 апр 09, 17:47    [7093984]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32895

Hello, javajdbc!
You wrote on Tue, 21 Apr 09 14:47:23 GMT:

javajdbc
j> Ето пример что может мускл с переменными , как часть ответа на вопрос Favn.
j> В тоже время интерсно знать если ПостГрес может решать такие
j> нестандартные задачи.
j> (надо посмотреть на того студента который решит такой курсовичек! :-)) )
я чот не понял, в чем сложности то?

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4

21 апр 09, 17:55    [7094051]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
javajdbc
Member

Откуда: Montreal
Сообщений: 17715
Мимопроходящий

Hello, javajdbc!
You wrote on Tue, 21 Apr 09 14:47:23 GMT:

javajdbc
j> Ето пример что может мускл с переменными , как часть ответа на вопрос Favn.
j> В тоже время интерсно знать если ПостГрес может решать такие
j> нестандартные задачи.
j> (надо посмотреть на того студента который решит такой курсовичек! :-)) )
я чот не понял, в чем сложности то?

--
With best regards, Мимопроходящий.



Ничего сложного, просто решить задачу на ПостГрес СКЛ-е
(на стандартном СКЛ-е задача не решается. МуСКЛ решает ето с помошью СКЛ-переменых).
Выше преведены две таблицы исходных данных и таблица ожидаемых результатов.
All yours :-)
21 апр 09, 18:33    [7094293]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
LeXa NalBat
Member

Откуда: Москва
Сообщений: 2892
javajdbc
Ничего сложного, просто решить задачу на ПостГрес СКЛ-е
(на стандартном СКЛ-е задача не решается. МуСКЛ решает ето с помошью СКЛ-переменых).
если не ошибаюсь, в постгресе эту задачу несложно решить на PL/PGSQL
21 апр 09, 18:44    [7094350]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
javajdbc
Member

Откуда: Montreal
Сообщений: 17715
LeXa NalBat
javajdbc
Ничего сложного, просто решить задачу на ПостГрес СКЛ-е
(на стандартном СКЛ-е задача не решается. МуСКЛ решает ето с помошью СКЛ-переменых).
если не ошибаюсь, в постгресе эту задачу несложно решить на PL/PGSQL


Ету задачу можно легко решить на ЛЮБОМ языке, кроме СКЛ :-)))
Кроме того, 100% понятно, что при необходимости
ее надо решать вне СКЛ-а. Вопрос был про нестандартные фичи
разных баз. Вот, типа мускл может такое сделать.

Никаких задних мыслей, я буду рад узнать если на ПостГресс-СКЛ-е ето делается просто.
Я даже не уверен что Оракл-СКЛ сделает такое.
21 апр 09, 18:57    [7094410]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
ОКТОГЕН
Member

Откуда:
Сообщений: 2498
javajdbc
дддддд
Какой смысл из обычной задачи создавать экзотическую?
Наверняка на практике задачи должны иметь более расширенные атрибуты.
например уровень сложности, срочность, важность, и т.д.
А у ресурсов могут быть реквизиты такие как опыт работы, направление, знания различных ЯП и т.д.
как это все увязать без промежуточной таблицы?
(хотя на самом деле - это главная таблица)


ОК, задача дана так как она поставлена:
Приходит один заказчик, говорит, мне нужно 5 работников -- ему выдают
5 работников (в простейшем случае отсортированые по ИД).
приходит другоиз заказчик, просит 3 работника.
Таперь представим: заказы собираются за целый день и распределяются в конце дня
по мере поступления или по ИД. Все работники могут делать все работы;
работников заведомо достаточно для всех заказов.

(Приоритеты задач и "опытность" работников могут повлиять только на
ордер бай блок, который тут не важен семь раз)

В постгрессе есть контриб, позволяющий строить очереди(или стеки)))) заказов без таких
извращений. Фича называется Advisory Locks, кажись, или pg_locks. Точно не помню.
21 апр 09, 19:03    [7094425]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
LeXa NalBat
Member

Откуда: Москва
Сообщений: 2892
javajdbc
Вопрос был про нестандартные фичи разных баз...

Никаких задних мыслей, я буду рад узнать если на ПостГресс-СКЛ-е ето делается просто.
имхо, на постгресе озвученная вами задача решается просто, причем без применения нестандартных фич :-)
21 апр 09, 19:10    [7094449]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
javajdbc
Member

Откуда: Montreal
Сообщений: 17715
LeXa NalBat
javajdbc
Вопрос был про нестандартные фичи разных баз...

Никаких задних мыслей, я буду рад узнать если на ПостГресс-СКЛ-е ето делается просто.
имхо, на постгресе озвученная вами задача решается просто, причем без применения нестандартных фич :-)


То, что ето "просто", мне уже несколько человек сказали.
Но никто не привел ни строчки СКЛ-а
21 апр 09, 19:20    [7094481]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
ОКТОГЕН
Member

Откуда:
Сообщений: 2498
javajdbc
LeXa NalBat
javajdbc
Вопрос был про нестандартные фичи разных баз...

Никаких задних мыслей, я буду рад узнать если на ПостГресс-СКЛ-е ето делается просто.
имхо, на постгресе озвученная вами задача решается просто, причем без применения нестандартных фич :-)


То, что ето "просто", мне уже несколько человек сказали.
Но никто не привел ни строчки СКЛ-а

Я имел ввиду это
21 апр 09, 21:12    [7094773]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
javajdbc
Member

Откуда: Montreal
Сообщений: 17715
ОКТОГЕН,

Интересная фишка. я обычно решаю такие задачи дополнительным
полем где записываю апдейтом ИД_потока,а потом перечитываю селектом
по етому ИД (ну и процессинг_статус конечно).

Однако не совсем понятно -- вы хотите напустить такое
много-потоковое решение на ету задачу?
Ето будет один СКЛ?
21 апр 09, 21:42    [7094851]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL или MySQL вместо Oracle  [new]
LeXa NalBat
Member

Откуда: Москва
Сообщений: 2892
javajdbc
имеются две НЕСВЯЗАНЫЕ таблицы.
1. Таблица задач с требуемым количеством людей на задачу:
2- Таблица людей-работников
Необходимо распределить работников по задачам.

TASK
T_id description resources
1"calculation"2
2"managing"1
3"washing"2


RESOURCES
R_id name
1"Vasia"
2"Natasha"
3"Alex"
4"Freddy"
5"Petia"


На выходе получить распределение людей по задачам
(допустим, задачи и люди отсортированы по ИД)

T_id R_id
11
12
23
34
35


Как решит такую (екзоотическую) задачу ПостГрес на СКЛ-е?
javajdbc
То, что ето "просто", мне уже несколько человек сказали.
Но никто не привел ни строчки СКЛ-а
LOOP
  SELECT t_id, resources-(SELECT count(*) FROM task_resources WHERE t_id=task.t_id) AS t_num
    INTO task_id, task_num FROM task ORDER BY 2 DESC, 1 ASC LIMIT 1; -- выбираем task
  IF task_num THEN
    SELECT r_id, (SELECT count(*) FROM task_resources WHERE r_id=resources.r_id) AS r_num
      INTO resource_id, resource_num  FROM resources WHERE r_id NOT IN
      ( SELECT r_id FROM task_resources WHERE t_id = task_id ) ORDER BY 2 ASC, 1 ASC LIMIT 1; -- выбираем resource
    IF r_id THEN
      INSERT INTO task_resources ( t_id, r_id ) VALUES ( task_id, resource_id );
    ELSE
      RAISE; -- EXCEPTION
    END IF;
  ELSE
    EXIT; -- LOOP
  END IF;
END LOOP;
22 апр 09, 11:11    [7096594]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить