PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak budować relacyjne tabele na dwustronnym rynku?

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".)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy tablice są zoptymalizowane w jOOQ i PostgreSQL?

  2. Jak wybrać za pomocą klauzuli WITH RECURSIVE

  3. Jak zasymulować zakleszczenie w PostgreSQL?

  4. Jak wykonać zapytanie LIKE dla klucza jsonb?

  5. Railsy, ​​jaka jest różnica w unikalnym indeksie i validates_uniqueness_of