[MYSQL] Tabela w tabeli

0

W jaki sposob mozna utworzyc tabele, ktora bedzie zbiorem innych tabel?
Np.:

BAZA DANYCH
|
|___ TABELA
      |
      |___ tabela 1
      |      |_pole1
      |      |_pole2
      |
      |___ tabela 2
             |_pole1
             |_pole2
0

Utwórz perspektywę. W dobrych dbms na perspektywie możesz pracować prawie tak, jakby to była zwyczajna tabela.

Niestety MySQL nie obsługuje wszystkich typów zapytań na perspektywie - możesz co najwyżej wykonawać zapytanie SELECT. (nie wiem jak MySQL 5).

pozdrawiam.

0

Niestety nie znam pojec, ktore stosujesz. Mozesz napisac cos wiecej o tej perspektywie?

0

Zalezy do czego tych tabel bedziesz uzywal, ale najprostszym rozwiazaniem wydaje mi sie zrobic tabele w ktorej rekordami beda nazwy "podtabel" czyli

TABELA GLOWNA
[pole nazwa_tabeli]
-tabela
-tabelka
-tabeleczka :P

0

Model relacyjny to nie xml - tutaj nie można zagnieżdżać tabel.

Perspektywa (inaczej widok) jest utrwalonym w dbms (database management system) wynikiem zapytania SQL.

Tworzy się ją poleceniem
CREATE VIEW view_name AS [zapytanie SELECT]

Od tego momentu view_name zachowuje się tak jak normalna tabelka - z pewnymi wyjątkami:

  • dane tak naprawdę nie są w niej przechowywane, za każdym razem jest ona obliczana na podstawie zapytania SELECT jakie zdefiniowałeś podczas tworzenia tej perspektywy

  • w związku z tym słabsze dbms nie umożliwiają operacji DELETE, UPDATE, INSERT

Jeśli chcesz wykonywać takie operacje na tej tabelce to z pewnością będą komplikacje - alternatywnie możesz rozważyć użycie zwyczajnych tabel z określoną strukturą:

tabela_kontener (knid,nazwa)
tabela1 (id,knid,pole1,...)
tabela2 (id,knid,pole1,...)

a potem
SELECT ...
FROM tabela_kontener k
INNER JOIN tabela1 t1 ON k.knid=t1.knid
INNER JOIN tabela2 t2 ON ...

A co chcesz zamodelować tak egzotyczną konstrukcją ?

0

Uh, no to skomplikowana sprawa dosc jak widze...
A szkoda, bo takie rozwiazanie wydaje mi sie najlepsze dla zrealizowania pewnego projektu. Zleceniodawczyni zazyczyla sobie, by miec mozliwosc samodzielnego uaktualniania pewnej sekcji z galeriami (dosc skomplikowanej).
Dzieki za odpowiedz - moze cos mi sie z tego przyda... mam nadzieje ;)

0

gdybys dokladniej podal szczegoly tego skompliowanego :) projektu to moze cos ciekawego bysmy zaproponowali....

0

Heh, no dobra ;) Propozycja Jagiego natchnela mnie i wymyslilem taka strukture bazy danych:

BAZA
|
|___ stage_festiwalowy
| |
| |___ id
| |___ folder
| |___ nazwa
| |___ opis
| |___ id_zespol_sety (np. 1;choice|url1;url2;url3)
|
|___ stage_dodatkowy
|
|___ id
|___ folder
|___ id_nazwa_opis (np. 666;iron maiden;smieszny zespol;)

Nie wiem czy cos z tego rozumiecie ;) Ostatnie pola kazdej z tabel to wlasnie jakby zagniezdzone tabele. Poszczegolne pola oddzielone sa od siebie znakami ";" i "|".
To nie jest chyba najlepsze rozwiazanie, ale nic lepszego nie wymyslilem poki co...
Jesli ktos zrozumial o co mi chodzi z ta dosc skomplikowana baza i ma lepszy pomysl to chetnie poczytam :)

0
Qp3k napisał(a)

Heh, no dobra ;) Propozycja Jagiego natchnela mnie i wymyslilem taka strukture bazy danych:

BAZA
|
|___ stage_festiwalowy
| |
| |___ id
| |___ folder
| |___ nazwa
| |___ opis
| |___ id_zespol_sety (np. 1;choice|url1;url2;url3)
|
|___ stage_dodatkowy
|
|___ id
|___ folder
|___ id_nazwa_opis (np. 666;iron maiden;smieszny zespol;)

Z tego rozumiem że pola id_zespol_sety i id_nazwa_opis to opis dodatkowy na kilku polach oddzielony ';', czyli coś na styl CSV.
Jeżeli tak to mam pytanie, czy wartość tych pól ma zawsze taką samą struktórę?

Czyli np. przy braku jakiegoś pola bedzie to wygladało tak:

666;iron maiden;smieszny zespol;
666;DeepPurple;;

I jaki masz cel do osiągnięcia bo tago w sumie nie zapisałeś?

0
Panczo napisał(a)

(...) mam pytanie, czy wartość tych pól ma zawsze taką samą struktórę?
Czyli np. przy braku jakiegoś pola bedzie to wygladało tak:
666;iron maiden;smieszny zespol;
666;DeepPurple;;
I jaki masz cel do osiągnięcia bo tago w sumie nie zapisałeś?

Dokladnie tak, przy czym jedno takie "zlozone pole" moze zawierac (i najprawdopodobniej bedzie zawieralo) wiec informacji (dlatego ID, zeby mozna bylo odpowiednia kolejnosc ustawic).

Cel jest taki, zeby umozliwic zleceniodawczyni samodzielna aktualizacje pewnego dzialu ze zdjeciami z koncertow. Poszczegolne galerie dziela sie jakby na dwa "bloki". Pierwszy opiera sie na schemacie:

NAZWA_ZESPOLU [link] - pozostale informacje, czyli np. data i miejsce koncertu
NAZWA_ZESPOLU [link] - pozostale informacje, czyli np. data i miejsce koncertu
NAZWA_ZESPOLU [link] - pozostale informacje, czyli np. data i miejsce koncertu
NAZWA_ZESPOLU [link] - pozostale informacje, czyli np. data i miejsce koncertu
NAZWA_ZESPOLU [link] - pozostale informacje, czyli np. data i miejsce koncertu

a drugi:

NAZWA_FESTIWALU
opis_festiwalu
nazwa_zespolu (ilosc_setow) 1 [link] 2 [link] 3 [link]
nazwa_zespolu (ilosc_setow) 1 [link] 2 [link] 3 [link]
nazwa_zespolu (ilosc_setow) 1 [link] 2 [link] 3 [link]
nazwa_zespolu (ilosc_setow) 1 [link] 2 [link] 3 [link]

Bloki te przeplataja sie. Zreszta najlatwiej bedzie to obejrzec w gotowcu ;) Zapodaje linkiem:
http://www.jowita-kaminska.com/menu.php?opcja=metal1

0

Co decyduje o kolejności przeplatania się tych bloków?
Dlaczego przykład zespołu "overkill" nie pasujący do reszty schematu?

Mam pytanie jak dużą przewidujesz pojemność tej bazy, jej przyrost.'

Pomyslę nad tym jeszcze, ale ja tam przyzwyczajony jestem do MSSQL-a i wyciągania danych w postaci XML-a co w tym wypadku byłoby IMHO najlepsze...

0
Panczo napisał(a)

Co decyduje o kolejności przeplatania się tych bloków?

Najczesciej kolejnosc ich dodania.

Panczo napisał(a)

Dlaczego przykład zespołu "overkill" nie pasujący do reszty schematu?

Fakt, jest overkill i cos jeszcze - galerie tych zespolow odbiegaja od schematu, ale to sie nie powtorzy, wiec nie ma problemu.

Panczo napisał(a)

Mam pytanie jak dużą przewidujesz pojemność tej bazy, jej przyrost.'

Nie jestem w stanie tego przewidziec. Wszystko zalezy od Jowity (zleceniodawczyni) - od tego ile bedzie tych rzeczy dorzucac.

Panczo napisał(a)

Pomyslę nad tym jeszcze, ale ja tam przyzwyczajony jestem do MSSQL-a i wyciągania danych w postaci XML-a co w tym wypadku byłoby IMHO najlepsze...
No mozliwe. Problem jednak w tym, ze nie mam pojecia o MSSQL-u, a nie mam czasu, zeby sie w to teraz zaglebiac (choc mozliwe, ze to nie jest zbyt trudny temat).

Gdybys mial chwilke zeby nad tym pomyslec to bede bardzo rad :) Poki co poprobuje chyba polaczyc MySQL z PuszaBazą choc to bedzie dziwny eksperyment i chyba nie najbardziej funkcjonalny :/

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