Postgres stworzenie i obsługa systemu plików.

0

Hej
Potrzebuję dowiedzieć się jak w postgresie stworzyć system katalogów (na załączniki) i jak go obsłużyć tylko niestety trudność polega na tym iż w bazie jest Active Records, który chyba nie współpracuje z pakietami, funkcjami etc. Nie wiem czy do czegoś się nada (mam nadzieję że raczej nie przeszkodzi. Bo jak na razie nic innego nie robi, no ale cóż na upór laików nie ma rady).
Na dzień dzisiejszy załączniki idą do tabeli (fuck!) dzięki czemu przy kilkunastu (ok 1000) wpisów tabela waży ponad 400 MB i działa jak działa.
poszukuję wszystkiego, linków, przykładów i betonowych kół ratunkowych :)

Baza postgres 8-ka

1

Ja bym rozdzielił metadane od contentu i miał prostą strukturę drzewiastą:

**Attachment: ** (modeluje załącznik)
ID - Primary Key
PAYLOAD - BLOB

FileSystem
NODE_ID - identyfikator węzła systemu plików (Primary Key)
PARENT_NODE_ID - identyfikator węzła nadrzędnego (NULL -- węzeł główny, można dopuścić wiele takich węzłów, np. różne wolumeny)
PAYLOAD_ID - klucz obcy do Attachmentu
NODE_NAME - Nazwa węzła (katalogu lub pliku)
NODE_TYPE - F - file, D - directory

PARENT_NODE_ID, NODE_NAME - unikalny constraint (tj. nie pozwalamy na duplikaty nazw w ramach tego samego węzła nadrzędnego)
Do tego pewnie jakiś CHECK constraint na kombinację PARENT_NODE_ID i NODE_TYPE.

--- Edited: Nie wiem jakie operacje będą na takim systemie plików wykonywane i na ile ważne są ścieżki do plików. Jeśli są ważne i coś na ścieżkach jest do zrobienia, to zerknij jeszcze na propozycje depesza odnośnie przechowywania drzew: https://www.depesz.com/2008/04/11/my-take-on-trees-in-sql/ (dodatkowo przechowywana jest głębokość węzła + ścieżka, te informacje aktualizowane są przez triggery). Dla wersji Postgresa bez wsparcia dla zapytań hierarchicznych może to być sensowne rozwiązanie.

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