Musisz zrozumieć podstawowy sposób rejestrowania informacji w sposób relacyjny, np. w tabelach.
Znajdowanie wystarczającej liczby stołów
Po prostu przygotuj tabelę bazową dla każdego stwierdzenia potrzebnego do opisania sytuacji biznesowej:
User(user_id,name,...)
// User [user_id] is named [name]
Contacted(contact_id,item,offer_id)
// user [contact_id] was contacted re item [item] offered by user [offer_id]
...etc...
Parametrami zestawienia są kolumny tabeli.
Jeśli chcesz mówić o częściach czegoś, o których myślisz, że mają wiele części (heterogenicznych lub jednorodnych), oznacza to po prostu, że niektóre stwierdzenia będą dotyczyć rzeczy i jej części:
table request(request_id,start_date,end_date,...)
// [request_id] goes from [start_date] to [end_date] and ...
table requested(request_id,item_id,person_id,...)
// person [person_id] requested item [item_id] in request [request_id]
Co jest w tabeli
Wartość tabeli bazowej to wiersze, które sprawiają, że jej stwierdzenie jest prawdziwe. (Każde podwyrażenie zapytania ma również instrukcję, a jego wartością są wiersze, które sprawiają, że jego instrukcja jest prawdziwa).
Nie myl instrukcji tabeli z regułami biznesowymi. Reguły biznesowe mówią prawdę. Ale instrukcja table to instrukcja, którą jakaś krotka sprawia, że jest prawdziwa (i trafia do tabeli) lub fałszywa (pozostaje poza tabelą). Wszystkie prawdziwe i fałszywe stwierdzenia z tabel mówią wszystko, co musisz wiedzieć o firmie. Reguły biznesowe nigdy nie będą im zaprzeczać. (Ponieważ zawsze są prawdziwe).
Przestawianie na lepsze stoły
Klucz to zestaw kolumn, których wszystkie inne kolumny są takimi funkcjami, ale żaden z podzbiorów nie ma tej właściwości. Tabela może mieć więcej niż jeden klucz.
Aby ułatwić aktualizowanie bazy danych i wykonywanie zapytań, należy rozbić pewne wyrażenia, które są innymi wyrażeniami połączonymi operatorem AND. Rozdziel, aż każda instrukcja będzie składać się tylko z instrukcji dotyczących kluczowych kolumn ORAZ z oświadczeniami w tej formie:
[my_column]=my_function([key_k_column_1],[key_k_column_2],...)
gdzie key_k_column_1,... to kolumny tego samego klucza key_n.
(Taka tabela jest "w piątej formie normalnej", a tematem jest "normalizacja".)