Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Stworzyc dużą tabele- jak?
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
ardento
Cześć,
mam pytanko jesli znajdziecie czas.

Potrzebuje zrobic tabele w bazie, prikaz jest taki by była to baza z jedną ogromną tabelą, do ktorej chcę wczytać dane z plików.

Każdy z plików zawiera ten sam schemat, oczywiście inne dane.
Czy warto robić tabele o 3004 kolumnach, traktowanych jako rekord?
Jeśli tak, to :
  1. CREATE TABLE baza(
  2. id_bazy int4 PRIMARY KEY,
  3. nazwa varchar(20),
  4. kolor varchar(15),
  5. obwod float8,
  6. objetosc float8,
  7. punkt1 float8, -|
  8. punkt2 float8, |
  9. .... |--- tutaj jest 3000 pól
  10. punkt2999 float _|
  11. );

Przepisywac na zasadzie copy$paste "punkt" i tak 3000 razy mija się z celem, jak to zrobić szybciej?

No nie wiem jak to ugryźć, by stworzyć tabele o 3004 polach, patrząc na tabele tak, przykład jak ma to wyglądać:

id... nazw.kolor.obwod objet .. pkt1 ..pkt2 ... pkt2998 pkt2999
|---|-------|-------|--------|-------|--------|------|.....|-------|-------|
|1. | qwe | blue | 2341| 1232|0.234|1.233|.....|0.234|3.342|
|---|-------|-------|--------|-------|--------|------|.....|-------|-------|
|2. | wed | blak | 2143| 7732|0.277|1.003|.....|9.004|0.399|
|---|-------|-------|--------|-------|--------|------|.....|-------|-------|
...
...
...
|---|-------|-------|--------|-------|--------|------|.....|-------|-------|
| X |
|---|-------|-------|--------|-------|--------|------|.....|-------|-------|

Czy jest możliwość zrobić to jako jedną tabele, ogromną tabele? Co kiedy X jest bardzo duży, np 100000 rekordów, czyli 100tys plików trzeba wczytać do bazy danych,i czy zrobiłbyś to w inny sposób.
Każdy z rekordów jest opisany dla ścisłosci 2-ma plikami, jeden to są parametry,drugi plik zawiera ok. 3000 wartosci typu float8, nazwanych jako "punkt". Wczytanie danych do bazy to jest prosta sprawa, można użyc COPY TO lub jakiegoś importu, lecz sama struktura tabeli to zagwostka.

Pozdrawiam
A.


PS. Przepraszam za naganny rysunek, ale moze cos jednak tam widac
wookieb
A po co ci 3000 kolumn?
Wicepsik
Wystarczą dwie tabele

pierwsza
id_bazy, nazwa, kolor, obwod, objetosc

druga
id_bazy, pkt, wartosc
ardento
Zatem,
tabela2 (id_tab, indeks,wartosc)

tab2
1,1,3.54544546
2,1,0.43434343
3,1,2.54545454
....
3000,1,8.54111454
3001,2,3.43434244
3002,2,7.32434343
.....
6001,3,5.32323233
itd do oporu


czy dobrze rozumiem Twój pomysł?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.