Zastanawiam się nad sensem korzystania z relacji, jedyną zaletę jaką mogę znaleźć to zmniejszenie rozmiaru bazy co może przełożyć się na większą wydajność.
Ale widzę tu znacznie więcej wad:
-pobranie danych w relacji na pewno jest mnie wydajne "SELECT imiona.imie FROM osoby,imiona WHERE osoby.id = 1 AND osoby.imie_id=imiona.id" VS "SELECT imie FROM osoby WHERE id = 1" musi być szybsze...
-widać też, że zapytanie jest dużo bardziej skomplikowane
Są przypadki gdzie zapisanie danych w relacji wymaga dużo większego obciążenie dysku:
Gdy do bazy chcemy dodać osobę najpierw musimy sprawdzić czy jej imię i nazwisko jest w bazie i pobrać ich id, dopiero w tym momencie możemy dodać osobę. Gorzej jeżeli imienia lub nazwiska nie ma w bazie bo dochodzą kolejne zapytania "INSERT".
Wychodzi więc iż trzeba przemyśleć gdzie relacje będą korzystne, w przypadku powyższym dużo lepiej wykorzystać jedną tabele, chyba, że potrzebujemy listę imion i nazwisk wtedy przy dodawaniu osoby wykonujemy jednocześnie 3 INSERTy gdzie w bazie imion i nazwisk ustawiamy wartości na unikalne.
Trzecia sprawa, czy w bazach, które raczą się zwać relacyjnymi nie ma jakiś narzędzi do upraszczania poleceń pobrania czy dodania rekordu?