Tworzenie widoków w bazie czy kodowanie zapytań join

0

Właśnie się zastanawiam co wybrać - czy kodować widoki w bazie czy zapytania w aplikacji. Korzystam z Qt(choć to raczej mało ważne), tak więc mam możliwość wykonywania zapytań i teraz kwestia gdzie implementować widoki - baza czy zapytania w kodzie. Chciałbym wybrać metodę, która pozwoli na rozwijanie programu w taki sposób, by zmiany można było wprowadzać w miarę bezpiecznie. Ciekaw jestem jak Wy rozwiązujecie ten problem, bądź o jakich praktykach słyszeliście.

Ogólnie plus widoku w bazie jest taki że wykonywać będę prostą operację pobrania danych z widoku - łatwo sparametryzować takie coś. Minus taki, że zmiany w widoku mogą wymuszać zmiany w aplikacji - kwestia wychwycenia tego na poziomie kodowania i testowania.

Plus kodowania w aplikacji zapytań z join jest taki że mało tykamy bazy - jeśli zrobimy sobie w aplikacji zbiór scentralizowany konkretnych zapytań to wtedy możemy modyfikować tylko aplikację(zapytania) zamiast modyfikować bazę w przypadku konieczności dodania jakiegoś pola w widoku.

0

Jak robiąc aplikacje bazodanową w Qt tworzyłem baze osobno za pomocą SQL albo przez gotowe aplikacje graficzne. Oczywiście jeśli bedziesz chciał coś zmienić w bazie to wygodniej bedzie aktualizować ją przez program niż osobno a Qt świetnie sobie z tym radzi. Nie wiem jaka to aplikacja i czy ma dla ciebie wielką wartość ale bezpieczniej i wygodniej jest napisać dodatkowo programik aktualizujący tą aplikacje i jednocześnie baze.

0

Co do aktualizatora to mam taki zamiar właśnie - aplikacja główna będzie sprawdzała czy jest świeży aktualizator - aktualizator będzie sprawdzał dostępność nowszej wersji aktualizacji - jeśli będzie nowsza wersja to ściąga binarki i robi aktualizację bazy.

Bardziej mi chodzi z tymi widokami w kwestii:

  • Tworzę widok w bazie.
    czy
  • Robię sobie query i tam rzeźbię joiny.
0

Ja zawsze korzystam z klas QSqlTableModel oraz QTableView. Masz dość sporą kontrole nad każdą komórką oraz wyglądem. Jeśli struktura twojej bazy uległa zmianie to faktycznie trzeba bedzie zmienić, w najgorszym wypadku, kilka linijek. Jest jednak bardzo fajny plus w QTableView (nie wiem czy bedzie potrzebny), otóż można zrobić bardzo fajną wyszukiwarkę rekordów która bedzie filtrować i wyświetlać od pierwszej wpisanej literki natychmiastowo.

0

QSqlTableModel akurat raczej do widoków się nie przyda. Ogólnie obecnie korzystam ze swojego tworu co dziedziczy po QSqlTableModel ale uciekłem od edycji w kratkach QTableView. Ciut bardziej rozbudowane aplikacje są mało czytelne dla użytkowników gdy edycja jest robiona w tabeli, bezpośrednio w komórce(tak mi się wydaje). Przy widokach to chyba z QSqlQueryModel można korzystać no i do prezentacji QTableView. Kwestia modyfikacji przy zmianie widoków - to trzeba będzie monitorować. Sądzę że można by do tego zaprzęgnąć QtScript - metadane opisowe(nazwa wyświetlana dla pola itp.) można by było zamknąć w skrypcie i nie trzeba by było kompilować programu w razie zmiany - jedynie podmiana skryptu wystarczyłaby.

1 użytkowników online, w tym zalogowanych: 0, gości: 1