Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc w zaprojektowaniu bazy
Forum PHP.pl > Forum > Bazy danych
GeedieZ
Prosiłbym o pomoc w zaprojektowaniu bazy ponieważ napotkałem problem i nie umiem sobie z nim poradzić:

Tabela tools:
Kod
tool_id   tool_name
1        Tool_1
2        Tool_2
3        Tool_3



Tabela parts:
Kod
part_id   part_name
1        Part_1
2        Part_2
3        Part_3


Teraz chodzi o to, by skonstruować jakąś tabelę łączącą te dwie tabele w taki sposób, że ukazywać będzie informacje typu:
Tool_1 składa się z:
2 części Part_1,
3 części Part_2,
0 części Part_3

Tool_2 składa się z:
1 części Part_1
2 części Part_2
3 części Part_3

itd...

Próbowałem zrobić tabelkę tools_parts_link, w której zawarłem takie informacje:
t_p_link_id matrix_id part1_id part1_qty part2_id part2_qty part3_id part3_qty part4_id part4_qty

Ale nic mi z tego nie wychodzi, poza tym jest to na pewno złe powiązanie z tabelą parts no ale brak mi już pomysłu jak to rozwiązać. Bardzo proszę o pomoc!
nithajasz
Komplikujesz sobie życie...
Kod
-------------------------------------------
| id | tool_name | part_1 | part_2 | part_3 |
-------------------------------------------
| 1 | tool_1       | 2            | 3       | 0           |
-------------------------------------------
| 2 | tool_2       | 0        | 2       | 1           |
-------------------------------------------


Edit: nie doczytałem dobrze smile.gif

Do tego dorzuć tą tabelke z nazwami part i będzie dobrze.
GeedieZ
No dobrze... ale jak teraz wyciągnę nazwy part_1, part_2, part_3? Musi do tego być osobna tabelka...
nithajasz
Edytowałem posta.

Na dwie tabelki ta z partami też musi być.
GeedieZ
Przykro mi ale nadal nie kumam. Jeśli zrobię tę drugą tabelkę jak proponujesz to jakim zapytaniem potem wyciągnę takie dane:

tool_1 składa się z 2 x Part_1, 3 x Part_2, 0 x Part_3? I co jeśli będę chciał dodać nowe parts do bazy?
pest
Zrób tak
tabela 1
`tools` (id_tool, name, costam2)
tabela 2
`parts (id_part, costam, costam2)

tabela 3
`tool_parts` (id_tool, id_part, quantity)

i jak będziesz chciał wiedzieć z jakich części składa się tool1 to masz
  1. SELECT *
  2. FROM tools t, parts p, tool_parts tp
  3. WHERE t.id_tool = tp.id_tool AND tp.id_part = p.id_part AND t.name = $name

Wtedy masz kilka rekordów z ilością części i inną częścią w każdym rekordzie (oraz taką samą częścią).
Później możesz sobie to obrobić w PHP, albo pokombinować (bo można) jeszcze w MySQL, żeby zrobił podzapytanie o podzespoły i zwrócił 1 rekord z narzędziem i listą części.
GeedieZ
O taką tabelkę mi chodziło. Dzięki, +1 pkt
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-2025 Invision Power Services, Inc.