/ / Mysql table design: table role [closed] - mysql, database, database-design

Projekt tabeli Mysql: role tabel [zamknięte] - mysql, baza danych, projektowanie baz danych

W mojej bazie danych mam tabelę o nazwie enterprise. Jeśli przedsiębiorstwo wyrazi swój popyt na moją firmę, firma stanie się naszą wizytówką. A po tym, jeśli przedsiębiorstwo zaakceptuje propozycję mojej firmy, podpiszemy kontrakt, a firma stanie się klientem.

Teraz stworzyłem 3 tabele, które są przedsiębiorstwem, klientem, klientem.

Jak więc zaprojektować bazę danych?

Odpowiedzi:

2 dla odpowiedzi № 1

Jednym ze sposobów byłoby posiadanie stołu Companiesi trzy tabele, które już masz. Wszystkie trzy tabele mają pole CompanyId, które ma konglomerat klucza obcego łączący go z tabelą firm. Ten projekt ma tę zaletę, że musisz przechowywać informacje o firmie w jednym miejscu i nie ma duplikacji.

Innym sposobem byłoby posiadanie pola w tabeli firm, które oznacza je jako przedsiębiorstwo, potencjalnego klienta lub klienta.

Wybór projektu zależy w dużej mierze od niegoinformacje dla różnych klas. Jeśli myślisz o dziedziczeniu (tzn. Klientem jest perspektywa jest przedsiębiorstwem), to wystarczy, że tabela firmy będzie wystarczająca. Jeśli jednak jest duża ilość informacji i informacje są różne dla każdej z trzech klas, pierwsze podejście byłoby lepsze.

Powinieneś jednak zawsze starać się zachowaćinformacje w jednym miejscu, tj. w jednym polu / tabeli (= całkowicie znormalizowany). W niektórych przypadkach możesz odejść od tej zasady ze względu na wydajność, ale pamiętaj, że oznacza to również wyższe koszty utrzymania - musisz zaktualizować n tabel, gdy zmieni się wartość.