PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách xây dựng bảng quan hệ trong thị trường hai mặt

Bạn cần hiểu cách cơ bản để ghi lại thông tin theo quan hệ, tức là trong các bảng.

Tìm đủ bảng

Chỉ cần có một bảng cơ sở cho mọi tuyên bố bạn cần để mô tả tình hình kinh doanh:

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

Các tham số của câu lệnh là các cột của bảng.

Nếu bạn muốn nói về các phần của một thứ mà bạn cho là có nhiều phần (không đồng nhất hoặc đồng nhất) thì điều đó chỉ có nghĩa là một số phát biểu sẽ liên quan đến một sự vật và các bộ phận của nó:

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]

Có gì trong bảng

Giá trị của bảng cơ sở là các hàng làm cho câu lệnh của nó đúng. (Mọi biểu thức con truy vấn cũng có một câu lệnh và giá trị của nó là các hàng làm cho câu lệnh của nó đúng.)

Đừng nhầm lẫn giữa các câu lệnh trong bảng với các quy tắc kinh doanh. Quy tắc kinh doanh nêu sự thật. Nhưng một câu lệnh bảng là một câu lệnh mà một số tuple biến true (và có trong bảng) hoặc false (không có trong bảng). Tất cả các tuyên bố đúng và sai từ các bảng cho bạn biết mọi thứ bạn cần biết về doanh nghiệp. Các quy tắc kinh doanh sẽ không bao giờ mâu thuẫn với chúng. (Vì chúng luôn đúng.)

Sắp xếp lại thành các bảng tốt hơn

Khóa là một tập hợp các cột mà tất cả các cột khác đều có chức năng như vậy nhưng không có tập hợp con nào có thuộc tính đó. Một bảng có thể có nhiều hơn một khóa.

Để cập nhật và truy vấn cơ sở dữ liệu dễ dàng hơn, bạn nên chia nhỏ các câu lệnh nhất định là các câu lệnh khác được nối bởi AND. Chia nhỏ cho đến khi mỗi câu lệnh chỉ bao gồm một câu lệnh về các cột chính VÀ được kèm theo các câu lệnh dạng này:

[my_column]=my_function([key_k_column_1],[key_k_column_2],...)

trong đó key_k_column_1, ... là các cột của cùng một key key_n.

(Bảng như vậy là "ở dạng chuẩn thứ năm" và chủ đề là "chuẩn hóa".)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tùy chọn cấu hình không được hỗ trợ cho services.db:'images'

  2. Làm thế nào để nối các phần tử mảng jsonb trong Postgres?

  3. PHPUnit:Làm thế nào để kiểm tra các tương tác cơ sở dữ liệu trên máy chủ Postgres từ xa?

  4. Làm cách nào để truy vấn các mảng lồng nhau trong một cột postgres json?

  5. pg_restore Alternatives - PostgreSQL Backup và Automatic Recovery with ClusterControl