fedora:aplikacje:libreoffice:base_pgsql
Różnice
Różnice między wybraną wersją a wersją aktualną.
| Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersja | ||
| fedora:aplikacje:libreoffice:base_pgsql [2025/11/05 19:43] – [Tworzenie przykładowej tabeli artyści] sindap | fedora:aplikacje:libreoffice:base_pgsql [2025/11/06 21:09] (aktualna) – [Pola kluczy] sindap | ||
|---|---|---|---|
| Linia 148: | Linia 148: | ||
| Uwaga. Dodana kolumna o typie TEXT skutkuje tym, że po odświeżeniu tabel i wprowadzaniu danych tekstowych czasem w polach mogą pojawić się zera. Jeżeli tak się stanie odświeżenie tabel nie wystarcza. Trzeba wyłączyć i włączyć LO Base. | Uwaga. Dodana kolumna o typie TEXT skutkuje tym, że po odświeżeniu tabel i wprowadzaniu danych tekstowych czasem w polach mogą pojawić się zera. Jeżeli tak się stanie odświeżenie tabel nie wystarcza. Trzeba wyłączyć i włączyć LO Base. | ||
| </ | </ | ||
| + | |||
| + | Jako typ pola kluczy używanym '' | ||
| + | |||
| + | Jednak w przypadku bazy dla LibreOffice Base na tą chwilę wygodniej stosować SERIAL. W przypadku pola SERIAL znika problem pojawiających się zer. Nie wiem czy problem jest po stronie sterownika łączącego LO Base z bazą czy samego LO. Biorąc pod uwagę, że LO Base bez problemu działa z HSQLDB to raczej wina jest po stronie sterownika SDBC. | ||
| ==== Dodanie kolumny ' | ==== Dodanie kolumny ' | ||
| Linia 176: | Linia 180: | ||
| ===== Struktura bazy ===== | ===== Struktura bazy ===== | ||
| + | ==== Pola kluczy ==== | ||
| + | * **klucz główny w każdej tabeli:** id | ||
| + | * **klucz obcy:** nazwa_tabeli_docelowej_id | ||
| + | Trzymanie się tej zasady ułatwi późniejszą administrację i użytkowanie. W niektórych przypadkach stosuje się podejście klucza głównego nawiązującego do nazwy tabeli. Jeżeli tabela '' | ||
| ==== Tworzenie przykładowej tabeli artyści ==== | ==== Tworzenie przykładowej tabeli artyści ==== | ||
| <code sql> | <code sql> | ||
| CREATE TABLE artysci ( | CREATE TABLE artysci ( | ||
| - | id INTEGER GENERATED BY DEFAULT AS IDENTITY | + | id SERIAL |
| nazwa TEXT NOT NULL UNIQUE | nazwa TEXT NOT NULL UNIQUE | ||
| ); | ); | ||
| Linia 216: | Linia 224: | ||
| <code sql> | <code sql> | ||
| ALTER TABLE utwor_artysta ADD CONSTRAINT unikalny_utwor_artysta UNIQUE (utwor_id, artysta_id) | ALTER TABLE utwor_artysta ADD CONSTRAINT unikalny_utwor_artysta UNIQUE (utwor_id, artysta_id) | ||
| + | </ | ||
| + | |||
| + | ==== Dodanie tabeli gatunków muzycznych ==== | ||
| + | <code sql> | ||
| + | CREATE TABLE gatunki ( | ||
| + | id SERIAL PRIMARY KEY, | ||
| + | nazwa TEXT NOT NULL UNIQUE | ||
| + | ); | ||
| + | </ | ||
| + | |||
| + | ==== Połączenie tabeli artystów z tabelą gatunków relacją jeden-do-wielu ==== | ||
| + | W tym celu w tabli '' | ||
| + | |||
| + | <code sql> | ||
| + | ALTER TABLE artysci | ||
| + | ADD COLUMN gatunek_id INTEGER REFERENCES gatunki(id) ON DELETE SET NULL; | ||
| </ | </ | ||
| ===== Połączenie LibreOffice Base ===== | ===== Połączenie LibreOffice Base ===== | ||
fedora/aplikacje/libreoffice/base_pgsql.1762368192.txt.gz · ostatnio zmienione: przez sindap
