MySQL projekt bazy

0

Cześć,
tworzą niewielką bazę w MySQL i natknąłem się na poniższy problem:

mam dwie tabele przykładowo:

samochod
id
model

element_samochodu
id
nazwa

mają one relację 1:m z tabelą "data_przegladu", czy w takim przypadku lepiej tworzyć 2 tabele "data_przegladu_element" oraz "data_przegladu_samochod" czy zostawić poniższą:

data_przegladu
id
id_samochod
id_element
data_przegladu

No i z czego wynika jedno lub drugie rozwiązanie istnieją jakieś sprawdzone wzorce ?

Pozdrawiam

0

Jeśli to pet project to ja bym dał daty przeglądu do tabelki samochód i tabelki element, bo nie chciałoby mi sie kombinować :D

0

Nazwa trzeciej tabeli (tutaj dla przykładu " data_przegladu" mogła wprowadzić w błąd ) ma w rzeczywistości ok 10 atrybutów które w obu przypadkach się powtórzą. Załóżmy że nazywa się:

historia_przegladu
id
data_przegladu
serwisant
opis
kwota
itp.

Powyższe pola powtórzą się zarówno dla tabel **samochod ** i **element_samochodu **

0

nie widziałem jeszcze, żeby osobny element samochodu miał przegląd, ale może takie coś jest. W takim razie pewnie zrobiłbym tabelki samochod, element, historia, samochod_historia, element_historia, ale wtedy masz M:N. Chyba że da sie jakies constrainty na to ustawić, ale nie pamiętam :)

0

ok przemyśle jeszcze to wiele do wielu dzięki za kierunek

1

"nie widziałem jeszcze, żeby osobny element samochodu miał przegląd"

Są: np instalacja gazowa, duża przyczepa, naczepa, wbudowany żuraw tudzież inne elementy specjalnego wyposażenia zwłaszcza te których niesprawność mogła by stanowić zagrożenie.
Może być tych elementów bardzo wiele więc najlepiej stworzyć osobną tabelę "elementy" a w niej id, nazwa_elem, numer_seryjny, samochod_id, (data_nastepnego_przegladu lub lliczba_dni_waznosci_przegladu).

A w historii przeglądu można wstawić element_id, samochod_id oraz data_przegladu (jeżeli element_id to null oraz samochod_id zawiera wartość, to jest to dokonany przegląd samochodu i analogicznie na odwrót).

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