Cześć,
zacząłem się uczyć SQL i chciałbym zaprojektować samodzielnie bazę danych, a później ćwiczyć na niej zapytania.
Baza będzie dotyczyć mieszkania, w którym są pokoje, a każdy z tych pokoi jest do wynajęcia.
Zrobiłem schemat na Lucidchart i chciałbym was poprosić o opinię co do niego.
Czy jest wykonany poprawnie i czy użyłem dobrych znaczników do relacji.
Opis tabel:
apartment - dane dotyczące mieszkania .
room - pokój i informacje o nim, jeden klucz obcy1-N (pokój może być w jednym mieszkaniu, ale w mieszkaniu może być kilka pokoi).
charges - opłata może dotyczyć jednego mieszkania ale mieszkanie może mieć kilka różnych opłat.
person - dane wynajmującego.
Z tym mam problem i wątpliwości co do poprawnego wykonania:
contract - informacje dotyczące umowy. Umowa może być podpisana przez jedną osobę, ale osoba może mieć kilka umów. Umowa może dotyczyć wynajmu jednego lub kilku pokoi przez jedną osobę (np. ktoś wynajmuje dwa pokoje w tym samym czasie w jednym mieszkaniu), ale pokój może mieć jedną umowę(wynajmującego) w danym czasie.
I teraz nie wiem. Bo mogę to tak zostawić i podpisać umowę oddzielnie dla każdego pokoju z jednym wynajmującym wtedy dla każdego pokoju contract_id będzie różne.
A zastanawiam się jak zrobić żeby pod jednym contract_id i start można było przypisać np. dwa room_id.
Teraz podczas pisania tego myślę, że mógłbym również zrobić kolejną kolumnę pod nazwą active gdzie będzie wartość bool mówiąca czy umowa jest w trakcie trwania czy już nie obowiązuje.
rent - czynsz, który wpłaca wynajmujący (w zamyśle wynajmujący płaci czynsz co miesiąc), kwota wpłaty nie zawsze musi się pokrywać, z kwotą na umowie. Wpłata zawsze idzie na konto konkretnego mieszkania.
Będę wdzięczny za opinie :)