Nie jestem nawet pewien, czy typ danych HStore PostgreSa może zawierać zagnieżdżone skróty, a jeśli tak, to jak je wstawić?Czy jest to możliwe i jaka jest składnia zagnieżdżonego skrótu w hStore PostgreSQL?
Oto, co starałem dotąd:
-- Database: test1
-- DROP DATABASE test1;
/*
CREATE DATABASE test1
WITH OWNER = iainuser
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'en_GB.UTF-8'
LC_CTYPE = 'en_GB.UTF-8'
CONNECTION LIMIT = -1;
*/
/* create extension hstore; */
/*drop table my_store;*/
/*
create table my_store (
id serial primary key not null,
doc hstore
);
CREATE INDEX my_store_doc_idx_gist
ON my_store
USING gist
(doc);
*/
/* select doc from my_store; */
/*
insert into my_store (doc) values ('"a" => "1"');
select doc -> 'a' as first_key from my_store; -- returns "1"
*/
/* insert into my_store (doc) values ('"b" => "c" => "3"'); -- doesn't work */
/* insert into my_store (doc) values ('"b" => ("c" => "3")'); -- doesn't work */
/* insert into my_store (doc) values ('"b" => hstore("c" => "3")'); -- doesn't work */
/* insert into my_store (doc) values ('"b"' => hstore("c" => "3")'); -- doesn't work */
/* insert into my_store (doc) values ("b"=>'"c"=>"3"'::hstore); -- doesn't work */
Jeśli nie jest to możliwe, jest tam obecny akceptowany standard/idiom do pracy z zagnieżdżonych skrótów - może ciągnąć je od siebie i odnosić się do nich za pomocą identyfikatora?
Każda pomoc w tej sprawie byłaby bardzo doceniana.
Jeśli to ci nie odpowiada, możesz przesłać plik hstore do tekstu, a następnie uciec od cudzysłowu, aby uzyskać ciąg znaków, który można zapisać jako wartość w hstore, ale prawdopodobnie nie byłoby to możliwe. wygodny w użyciu. Możesz rozważyć normalizację danych nieco bardziej. – kgrittn
Dzięki za wyczyszczenie tego, doceniam to. Przeczytałem tę stronę w podręczniku (i jest to świetny podręcznik), ale nie miał nawet przykładu wstawki, więc zastanawiałem się, czy nie było bardziej złożonych przykładów, które również zostały pominięte. @kgrittn Myślę, że odlewanie będzie trasą, którą podejmuję, nie potrzebuję znormalizowanych danych w tym przypadku, (tylko dokument jako blob), chyba że jest to jedyny sposób na przeniesienie dokumentu do bazy danych! – iain