Wpis z mikrobloga

#bazydanych #sql #nosql #programowanie

Hejka.

Potrzebuję przechowywać strukturę drzewiastą - coś na wzór drzewa genealogicznego. [patrz obrazek].

W taki sposób, aby była możliwość dodawania relacji (dziecko, rodzic itd.) na każdym z poziomów, tzn. do istniejącego drzewa chciałbym móc dodać np. kolejne dziecko, albo "dziadka" - przykładowo 2 poziomy wyżej w hierarchii.

Oraz móc wczytywać całą* strukturę po wybraniu dowolnego elementu. [w odniesieniu do obrazka: wybieram np. AB2C i wczytuje całe* drzewo w górę - aż do samego początku A-B, w bok - do C - i w głąb].

*nie koniecznie musi to być całe drzewo, mogą to być np. 2 poziomy (co najmniej 2), z których można przeskakiwać wgłąb albo wzwyż.

Poza tym relacje mogą się przenikać i łączyć. [na obrazku np. relacje AB2 --- C łączy się z D --- Z itd.] albo rozpoczynać inne gałęzie [patrz obrazek: A --- B i A --- X] i później także się łączyć w któryś następnym pokoleniu.

Jakiś pomysł jak to ogarnąć? Może być SQL, może być noSQL, byleby można było wygodnie dodawać elementy i wyciągać relacje.

Z góry dzięki za pomoc.
PrawyKuba - #bazydanych #sql #nosql #programowanie 

Hejka.

Potrzebuję przechowy...

źródło: comment_15976622998FCgsLMBUCpE05fQvrIn5H.jpg

Pobierz
  • 5
Poza tym relacje mogą się przenikać i łączyć. [na obrazku np. relacje AB2 --- C łączy się z D --- Z itd.] albo rozpoczynać inne gałęzie [patrz obrazek: A --- B i A --- X] i później także się łączyć w któryś następnym pokoleniu.


@PrawyKuba: Nie do końca rozumiem ten fragment i zapis. Jeśli jedno dziecko może mieć kilku rodziców, i mogą występować cykle, to nie jest drzewo, a zwykły graf
@GaiusBaltar:

- jak częste będą operacja wstawiania/modyfikacji elementów

Rzadko, raz poprawnie wstawiony element nie zostanie usunięty ani zmodyfikowany (w sensie relacja nie zostanie zmodyfikowana, zmiany w obrębie rekordu tj. np. zmiana nazwy mogą zachodzić)

- jak częste będą operacje odczytu

Pełnej struktury b. rzadko, jednak chciałbym mieć szybki dostęp do elementów sąsiadujących tj. rodzice, partner + dzieci

- czy będą wykonywane operacje przenoszenia elementów

Nie, raz dodana relacja nie zostanie zmieniona,