Narzędzia użytkownika

Narzędzia witryny


fedora:aplikacje:libreoffice:base_pgsql

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
fedora:aplikacje:libreoffice:base_pgsql [2025/11/05 20:22] – [Unikanie duplikatów] sindapfedora:aplikacje:libreoffice:base_pgsql [2025/11/06 21:09] (aktualna) – [Pola kluczy] sindap
Linia 150: Linia 150:
  
 Jako typ pola kluczy używanym ''INTEGER ...'' . ''SERIAL'' jest starszym (choć wciąż działającym) sposobem tworzenia automatycznych kluczy w PostgreSQL, a ''GENERATED ... AS IDENTITY'' to nowoczesny, zgodny ze standardem SQL sposób. Jako typ pola kluczy używanym ''INTEGER ...'' . ''SERIAL'' jest starszym (choć wciąż działającym) sposobem tworzenia automatycznych kluczy w PostgreSQL, a ''GENERATED ... AS IDENTITY'' to nowoczesny, zgodny ze standardem SQL sposób.
 +
 +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 'lokalizacja' do tabeli 'test_table' ==== ==== Dodanie kolumny 'lokalizacja' do tabeli 'test_table' ====
Linia 178: 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 ''artysci'' to klucz ''artysta_id'', tabela ''utwory'' to klucz ''utwor_id''. Z jednej strony daje większą czytelność ale z drugiej więcej pisania. Najważniejsze by przynajmniej w obrębie jednej bazy trzymać się tej samej zasady.
 ==== 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 PRIMARY KEY,+    id SERIAL PRIMARY KEY,
     nazwa TEXT NOT NULL UNIQUE     nazwa TEXT NOT NULL UNIQUE
 ); );
Linia 192: Linia 198:
 <code sql> <code sql>
 CREATE TABLE utwory ( CREATE TABLE utwory (
-    id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,+    id SERIAL PRIMARY KEY,
     tytul TEXT NOT NULL,     tytul TEXT NOT NULL,
     rok INTEGER,     rok INTEGER,
Linia 223: Linia 229:
 <code sql> <code sql>
 CREATE TABLE gatunki ( CREATE TABLE gatunki (
-    id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,+    id SERIAL PRIMARY KEY,
     nazwa TEXT NOT NULL UNIQUE     nazwa TEXT NOT NULL UNIQUE
 ); );
 +</code>
 +
 +==== Połączenie tabeli artystów z tabelą gatunków relacją jeden-do-wielu ====
 +W tym celu w tabli ''artysci'' dodana zostanie kolumna ''gatunek_id'' przechowująca klucze tabeli ''gatunki''.
 +
 +<code sql>
 +ALTER TABLE artysci
 +ADD COLUMN gatunek_id INTEGER REFERENCES gatunki(id) ON DELETE SET NULL;
 </code> </code>
 ===== Połączenie LibreOffice Base ===== ===== Połączenie LibreOffice Base =====
fedora/aplikacje/libreoffice/base_pgsql.1762370531.txt.gz · ostatnio zmienione: przez sindap

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki