Problem zbyt dużej pustej przestrzeni

Powiedzmy, że mamy rekord sprzedaży; co się stanie, jeśli otrzymamy wiadomość dotyczącą tego zamówienia od naszego klienta? Po prostu dodajemy dane do odpowiednich kolumn DATE, STARS i MESSAGE. Co się stanie, jeśli otrzymamy kolejną wiadomość dotyczącą tego samego zamówienia? Cóż, możliwym rozwiązaniem byłoby dodanie nowej kombinacji DATE, STARS i MESSAGE do nowej wiadomości, ale nazwy zwinęłyby się. Jak byśmy się między nimi rozróżnili? Cóż, możemy dołączyć liczbę wskazującą aktualny numer wiadomości. Wtedy mielibyśmy DATE_1, STARS_1 i MESSAGE_1 dla pierwszej wiadomości oraz DATE_2, STARS_2i MESSAGE_2 dla drugiej wiadomości. To by to rozwiązało, prawda? Co się stanie, jeśli otrzymamy trzecią lub więcej wiadomości związanych z zamówieniem? Cóż, skończylibyśmy z wieloma zmiennymi w naszej ramce danych. W szczególności mielibyśmy tyle kombinacji, ile wynosi maksymalna liczba wiadomości, które zostały wysłane do jednego zamówienia. Jaka byłaby zawartość komórek dla zamówień, które nie miały tak dużej liczby komunikatów? Byłyby puste. To byłoby dużo zmarnowanej przestrzeni! Ponadto ogólna struktura danych wydawałaby się niezręczna. Musi być lepszy sposób. Jeśli się nad tym zastanowić, wydaje się, że komunikaty i sprzedaż to dwie różne rzeczy i że powinny być oddzielone, prawda? Jeśli myślisz o tym w ten sposób, masz rację. Wyobraźmy sobie więc, zachowajmy jedną ramkę danych dla zamówień sprzedaży, a drugą dla wiadomości. Jest jeszcze jeden problem. Możesz to zobaczyć? Jak ustalimy, które wiadomości należą do jakich zamówień sprzedaży? Identyfikatory na ratunek! Możemy dodać SALE_ID do ramki danych sprzedaży, gdzie powinna być unikalna, a możemy dodać to samo SALE_ID do ramki danych wiadomości, gdzie nie będzie unikalna, ponieważ być wieloma wiadomościami dotyczącymi tego samego zamówienia sprzedaży. Oznacza to, że mamy relację jeden do wielu. Mając to na uwadze, ramka danych sprzedaży zawierałaby wszystkie wspomniane wcześniej zmienne, pomniejszone o zmienne DATE, STARS i MESSAGE dla komunikatów (nie należy mylić sprzedaży kolejność DATE z DATE dla każdej wiadomości), a te trzy zmienne będą zgodne z oddzielną ramką danych wiadomości. Obie ramki danych miałyby zmienną SALE_ID. Świetny; to już minęło.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *