2010-08-15 10 views
6

muszę być w stanie przechowywać tak: Structure http://i33.tinypic.com/f4dwea.jpgjak reprezentować drzewa i ich zawartość w MySQL?

gdzie zieleń jest typ template, szary jest rodzajem field container, a białe jest field. (W tym przypadku pole ma etykietę i trochę tekstu, oba są średnikiem dla uproszczenia, a kontener pola może przechowywać inne pola lub tekst, a szablon jest polem najwyższego poziomu).

Teraz, powiedzmy, że chcemy umożliwić użytkownikom tworzenie dowolnej liczby tych struktur, ale jest mało prawdopodobne, że będzie to więcej niż powiedzenie 10. I oczywiście musimy mieć możliwość połączenia z nim danych.

To wszystko, aby móc przechowywać w bazie danych tablicę asocjacyjną, która wygląda na powyższe jak w pseudo kod:

my_template = { 
    page_info => { description => 'hello!!!' }, 
    id => 0, 
    content => { background_url => '12121.jpg', text => ... 
} 

Mając łatwy sposób dodać pole do wszystkich danych za pomocą szablonu kiedy szablon się zmieni (powiedzmy, dodamy keywords do page_info) będzie dużym plusem.

Nie mogę tego w ogóle zrozumieć, wielkie dzięki!

+0

możliwy duplikat [pytania o strukturę tabeli MySQL.] (Http://stackoverflow.com/questions/3486109/mysql-table-structure-question) –

+0

@OMG Kucyki, nie, ponieważ to nie obejmuje sposobu przechowywania informacje o nich, po prostu struktura. –

+0

@AaronYodaiken, rozwiązałeś ten problem? W jaki sposób? Zawsze było mi łatwo budować strukturę drzewa stołowego, ale teraz mam specyficzny i podobny problem. Chcę zapisać w tabelach db pewną strukturę, którą można zdefiniować jako obiekt widoku ze wzorca MVC. na przykład: t_view ("id", "ścieżka_do_pliku"), t_vars ("id", "var", "view_id"); - tabele te definiują blok pojedynczego widoku wraz z jego zmiennymi. Potrzebuję wygenerować wielowymiarowy szablon, w oparciu o jakiś widok, każdą zmienną można również wyświetlić każdą zmienną ... i tak dalej. I jeden szablon może rozszerzyć inny z ponownym zdefiniowaniem niektórych wartości zmiennych. – LINKeRxUA

Odpowiedz

6

Istnieje kilka różnych sposobów przechowywania heirarchicznych struktur danych (drzew) w MySQL. Można na przykład wybrać:

  • lista sąsiedztwa
  • Zagnieżdżone zestawy
  • Path wyliczenie
  • Zamknięcie stolik

See Bill Karwin na presentation więcej szczegółów na temat zalet i wad każdego z nich.

+0

Dzięki za te. Nie znałem Billa Karwina, aw jego prezentacjach jest kilka klejnotów. – chryss

Powiązane problemy