Forum QGIS
Tworzenie wielu rekordów jednocześnie - Wersja do druku

+- Forum QGIS (http://forum.quantum-gis.pl)
+-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html)
+--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html)
+--- Wątek: Tworzenie wielu rekordów jednocześnie (/thread-1807.html)



Tworzenie wielu rekordów jednocześnie - wojkol1 - 05-07-2019

Cześć,

w projekcie mam 3 warstwy Poligonowa, Tab_1, Tab_złączeniowa. Chciałbym znaleźć sposób na dodawanie wielu rekordów do tabeli złaczeniowej.
Proces ma polegać na tym, aby wybrać kilka polygonów i jeden rekord z TAb_1(promocje) i na podstawie tego wyboru stworzyło nowe rekordy w tabeli złączeniowej
id_pol1 - id_prom1
id_pol2 - id_prom1
id_pol3 - id_prom1
...

Warstwy stoją na postgresie. Akutalnie rozwiązuje problem triggerami na bazie i dodatkowymi kolumnami roboczymi w tabeli poligonów. Przy użyciu multiedycji wstawiam do kilku poligonów promocje i na tej podstawie trigger tworzy nowe rekordy, jest to dość pokręcone rozwiązanie, trochę nieoptymalne wymaga  np. czyszczenia kolumn i do końca mnie nie satysfakcjonuje.
Czy macie pomysł na rozwiązanie?


RE: Tworzenie wielu rekordów jednocześnie - xmaziax - 05-07-2019

Nie do końca rozumiem co chcesz osiągnąć, ale ja bym to zrobił tak jak opisałem niżej.

W tabeli Poligonów zakładasz kolumnę referującą do Tab_1, przechowującą id_prom1.
Podpinasz  id z tab_1 jako słownik do tej kolumny, żeby zapisywać w niej id z Tab_1.
Piszesz trigger, który w wypadku edycji tej kolumny z ID z Tab_1, wstawiał do Tab_złączeniowa wartości, np. ID_TAB_ZLACZENIOWEJ, id_pol1,  id_prom1, data_wstawienia (żeby nad tym panować i móc śledzić historię zmian w promocjach).
W poligonie przechowywana jest tylko ostatnia wartość edycji.
Możesz jeszcze pododawać sobie jakieś pola informujące o datach i osobach modyfikujących (jeśli to więcej osób używa).
To tak na szybko z pobieżną znajomością tematu.


RE: Tworzenie wielu rekordów jednocześnie - wojkol1 - 09-07-2019

Może niezrozumiale rozpisałem, ale właśnie stosuje aktualnie takie rozwiązanie jak zaproponowałeś, jednak szukam innego, które będzie bardziej przyjazne użytkownikowi i nie będzie wymagało zbyt wielu kliknięć. Z projektu będą korzystać osoby, które mają bardzo małe obycie z qgisem, a teraz procedura dopisywania promocji do obiektów jest dosyć skomplikowana.


RE: Tworzenie wielu rekordów jednocześnie - xmaziax - 09-07-2019

Wg mnie to jest proste rozwiązanie...

Możesz sobie też napisać Akcję dla tabeli promocji.
1) Na warstwie poligonów zaznaczasz narzędziem wyboru obiekty, które mają mieć promocję
2) W warstwie promocji dodajesz akcję (we właściwościach, musisz to w pythonie oprogramować), która dla wybranej promocji (przycisk wywołujący się może pojawić w tej tabeli) szuka poligonów w ich warstwie, które są zaznaczone, dla tych poligonów wstawia na warstwę złączeniową ich id + id promocji.

Możesz to też w postaci wtyczki zrobić, z tym, że zaznaczasz poligony i albo zaznaczasz wiersz z tab promocji, albo w oknie wtyczki tworzysz sobie listę promocji i z niej odznaczasz co ma powstać.
Mam nadzieję, że za bardzo nie namieszałem w opisie Smile

Nie widzę jak to bardziej uprościć i pytanie czy to "upraszczanie" ma sens (czasowy i ekonomiczny)