[MySQL] Problem z zapisem danych w bazie danych
Michał - 20-06-2006 00:11
[MySQL] Problem z zapisem danych w bazie danych
Witam
Mam strukturę drzewiastą generowaną dynamicznie. Tzn. mam jakby 3 poziomy: poziom A, poziom B i poziom C; w każdym tym poziomie kilka wpisów i to się wszystko wymnaża; czyli jeśli na poziomie A jest 10 wpisów, w B 20 wpisów a w C 5 wpisów to mamy 10 x 20 x 5 liści czyli 1000 liści; z których nie które tylko mają posiadać wartości; dlatego nie chce ich wpisywać wszystkich do tabeli.
Gdyby liczba poziomów nie była dynamiczna - jak opisałem - nie byłoby problemu, wystarczyła by tabela z 3 kolumnami... ale właśnie jest. I zastanawiam się czy taka tabela:
Poziom (VARCHAR[255]) | Wartosc 1_3_5 | tak 2_3_5 | tak 4_2_5 | tak 5_1_4 | tak ....
będzie dobra do przechowania tego wszystkiego? Jak myślicie?
Czy nie jest błędem przechowywać - w gruncie rzeczy - liczb na polu tekstowym?
Pozdrawiam
Wojtek pBT (prac) - 23-06-2006 00:09
Michał napisał(a): > Witam > > Mam strukturę drzewiastą generowaną dynamicznie. Tzn. mam jakby 3poziomy: > poziom A, poziom B i poziom C; w każdym tym poziomie kilka wpisów ito się > wszystko wymnaża; czyli jeśli na poziomie A jest 10 wpisów, w B 20 wpisów a > w C 5 wpisów to mamy 10 x 20 x 5 liści czyli 1000 liści; z których nie które > tylko mają posiadać wartości; dlatego nie chce ich wpisywać wszystkich do > tabeli. > > Gdyby liczba poziomów nie była dynamiczna - jak opisałem - nie byłoby > problemu, wystarczyła by tabela z 3 kolumnami... ale właśnie jest. I
WRONG, wystarczyły by 3 tabele W sumie z 5-cioma kolumnami.
A patrzyłeś do FAQ bazy-danych jak zrobić porządną strukturę drzewiastą, w której poziomy mogą się zagłębiać w nieskończoność?
> zastanawiam się czy taka tabela: > > Poziom (VARCHAR[255]) | Wartosc > 1_3_5 | tak > 2_3_5 | tak > 4_2_5 | tak > 5_1_4 | tak > ... > > będzie dobra do przechowania tego wszystkiego? Jak myślicie? >
Baza danych jest w pierwszej postaci normalnej, jeżeli wszystkie atrybuty są atomowe. Czyli z formalnego punktu widzenia jest bardzo źle. Ale inną sprawą jest to, że po normalizacji, prowadzi się denormalizację, żeby to wszystko lepiej działało...
> Czy nie jest błędem przechowywać - w gruncie rzeczy - liczb na polu > tekstowym?
nie, w ten sposób przechowywane są "krytyczne" wartości liczbowe - np w systemach bankowych
> > > Pozdrawiam > >
pBT
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
zanotowane.pldoc.pisz.plpdf.pisz.platanvarne633.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|