![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam! Od niedawna zajmuję się PHPem i MySQLem.
Mam problem, mianowicie mogę zaprojektować bazę na dwa sposoby. W bazie mam kilka głównych tabel. Jedna z tabel zawiera elementy "A", inna "B". Każdy element "B" nawiązuje (należy) do jakiegoś elementu "A". Zastanawiam się, czy lepiej wszystkie elementy "B" trzymać w jednej tabeli, czy tworzyć osobne tabele dla każdego rekordu "A", które by zawierały te elementy, czyli: TABELA B |pole1 | pole2 | pole3 .... | A | czyli są wszyskie pola + pole A które mówi, do jakiego elementu A należy dany rekord drugi sposób: TABELA B1 |pole1 | pole2 | pole3 .... | TABELA B2 |pole1 | pole2 | pole3 .... | itd. czyli wszystkie pola, bez pola A: zamiast tego id rekordu z A dodaje do nazwy. Takie tabele "B" byłyby (chyba) dwie dla każdego rekordu "A". Oprócz tego inny problem: Rekordy "A" trzymają też pewną listę id i znów dwa sposoby, jak to robić: dodatkowe pole w "A" 'pewne_id' które zawiera: "id1;id2;id3;id4;...;idn" gdzie idx to wartość id, a ; to seperator. drugi sposób: Dla każdego rekordu w "A" nowa tabela: TABELA pewne_id1 której rekordami są id1 id2 id3 itd (jedno pole zawiera) Te listy id też (chyba) są dwie dla każdego rekordu w "A". Mam nadzieję, że dosyć zrozumiale opisałem (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Spróbuję zamienić na coś zrozumiałego w takim razie:
Jedna z głównych tabel zawiera, powiedzmy marki samochodów (nasza "A"). W tej tabeli są jakieś tam informacje podstawowe, nieważne. Każda marka ma typy różne ("B"). Te typy opisywane kilkoma polami. Teraz, czy wszystkie typy w jednej tabeli: TABELA typ |126p | p #2 | p #3 | p #4 ... | Fiat | |Viper| p #2..... | Dodge | [zamiast napisu trzymamy wartość id ofc] czy trzymać w osobnych tabelach: powiedzmy, Fiat ma ID = 3, a Dodge ma ID = 8 to w tabeli: TABELA typ3 |126p | p #2 | p #3 | p #4 ... | TABELA typ8 |Viper| p #2..... I powiedzmy mamy jakąś tabelę wyposażenia, każdy rekord ma tam ID. Każda marak (nie typ) może korzystać z jakichś elementów wyposażenia. Kilka marek może z jednego korzystać, więc zapisujemy ID wyposażeń z których może korzystać: TABELA wyposazenie ID| p#2 | p#3 itd 1 | ABS | .... .... W polu "wyposazenie" trzymać te id oddzielone separatorami, czyli jak jakaś marka może mieć ABS to dodajemy to pola "1;" jak element wyposażenia o ID 7 to dodajemy "7;" Czy trzymać w osobnej tabeli, czyli wyposażenie dla Fiata o ID = 3 (ID marki, nie wyposażenia) w: TABELA wypisazenie3 |ID| |1 | |x | itd. Ten post edytował banias 12.08.2009, 08:55:33 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 06:41 |