Uproszenie kluczy obcych

0

Powiedzmy że chcę mieć tabelę użytkowników zawierającą id, imiona i nazwiska
wiadomo że imiona i nazwiska się często powtarzają - żeby zmniejszyć rozmiar bazy chciałbym przerzucić imiona i nazwiska do osobnych tabel a w tablicy użytkowników zapisywać tylko ich id

Wszystko fajnie tylko bardzo to komplikuje właściwie wszystko - przy wybieraniu trzeba joinować a przy wstawianiu trzeba najpierw poszukać czy id istnieje i jeśli tak to go użyc a jeśli nie to najpierw wstawić imie do tablicy i pozyskać jego id

mogę użyć widoków do wyświetlania i funkcji do zapisywania, ale może jest lepszy sposób?
Najfajniej jakby te pomocnicze tablice w ogóle nie były widoczne na liście żeby nie zaciemniać obrazu bazy danych, tylko były jakby wewnętrznymi, pomocniczymi; coś w takim stylu żeby kolumna była enumem który się automatycznie rozszerza o nowe wartości

Jakie są najlepsze praktyki w tym kierunku?

0

ogólnie chodzi o to czy da się wprowadzić taką zmianę zmieniając tylko coś po stronie bazy danych - tak żeby od strony aplikacji wszystko było po staremu bez konieczności zmiany kodu

1

Najlepszą praktyką jest nie udziwniać. Nie warto tworzyć tabeli imion i nazwisk i później łączyć to kluczami. Dlaczego? Ze względu na wydajność oraz prostotę programu. Trzeba pamiętać, że program tworzą ludzie dla ludzi i ważne jest aby można było sprawnie wchodzić w kod bez konieczności studiowania join'ów które wyciągają imiona i nazwiska.

0

"Najlepszą praktyką jest nie udziwniać" - popieram

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