🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #194074

PostgreSQL - jak najlepiej definiować dynamiczne pola?

#194074
From: Marek
Date: Fri, 30 Jan 2015 13:19
47 lines
2065 bytes
Witam,

Na etapie projektu powstała tabela

CREATE TABLE tabela
(
     tabela_id SERIAL PRIMARY KEY,

     pola...
);

Jednakże okazało się iż tabela ta ma mieć dodatkowe pola zarówno 
informacyjna jak i czasem biorące udział w wyszukiwaniu. Pól będzie 
przybywać i mają być definiowane na bieżąco. Typ nieprzewidywalny - 
niektóre tekstowe, niektóre liczbowe. Pomyślałem zatem, że mógłbym 
wykorzystać pole typu tablicowego

CREATE TABLE tabela
(
     tabela_id SERIAL PRIMARY KEY,

     pola...
     uniwersalne text[];
);

Zapis qusi-pól wyglądałby tak, że w polu "uniwersalne" trzymałbym 
wartości. Kłopot w tym, że PostgreSQL nie ma tablic asocjacyjnych więc 
musiałbym się posiłkować tabelą słownikową konwertującą nazwę na indeks:

CREATE TABLE name_to_index
(
     name_to_index_id SERIAL PRIMARY KEY,

    nazwa_pola varchar(100), --nie indeksowane bo tabela będzie miała do 
ok 20 rekordów
    indeks_odpowiadajacy_w_polu_uniwersalne int
);

Oczywiście w w plpgsql napisałbym funkcję symulującą dostęp do tablicy 
asocjacyjnej. Czy taka ideologia jest poprawna? Da się to lepiej 
zorganizować?

Czy da się indeksować w tablicy np. indeks 4 i 10ty np.?

-- 
Pozdrawiam,
Marek
Technical Details
Message-ID: <mag0cl$o93$1@news.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
From: Marek <precz@spamowi.com>
Newsgroups: pl.comp.bazy-danych
Subject: PostgreSQL - jak najlepiej definiować dynamiczne
 pola?
Date: Fri, 30 Jan 2015 14:19:12 +0100
Organization: ICM, Uniwersytet Warszawski
Lines: 47
Message-ID: <mag0cl$o93$1@news.icm.edu.pl>
NNTP-Posting-Host: 89-69-222-145.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: news.icm.edu.pl 1422623957 24867 89.69.222.145 (30 Jan 2015 13:19:17 GMT)
X-Complaints-To: usenet@news.icm.edu.pl
NNTP-Posting-Date: Fri, 30 Jan 2015 13:19:17 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit