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

Có thực tế để chuẩn hóa động một bảng không?

Nó phụ thuộc một chút vào cách sử dụng của bạn. Cách tiếp cận chuẩn hóa (park là một bảng) sẽ làm cho các truy vấn sau dễ dàng hơn:

  • Đã có bao nhiêu lần nhìn thấy chim ở mỗi công viên
  • Bạn có nhiều khả năng nhìn thấy chim XYZ ở công viên nào nhất
  • Có thể còn khá nhiều truy vấn như thế này

Nhưng có, bạn gặp phải một số vấn đề khó khăn. Mẫu "nếu công viên XYZ không tồn tại thì hãy chèn nó vào bảng công viên" gặp phải tình trạng cuộc đua mà bạn sẽ phải đối phó.

Bây giờ, còn một số lập luận chống lại việc chuẩn hóa ở đây thì sao ... Hầu hết cơ sở dữ liệu khách hàng có thể lưu trữ địa chỉ đường phố của tôi là "123 Foo Street", mà không chuẩn hóa động tên đường (chúng ta có thể có một bảng đường phố và đặt "Foo Street" ở đó, sau đó tham khảo nó từ các bảng khác. Tại sao tôi đưa ra điều này, cũng để cho thấy rằng ngay cả những người ghét bất kỳ dữ liệu lặp lại nào cũng có thể thừa nhận rằng có một số dòng mà bạn không nhất thiết phải vượt qua.

Một ví dụ ngớ ngẩn khác là chúng ta có thể dùng chung họ. Chúng ta có thực sự cần một bảng cho họ duy nhất và sau đó là khóa ngoại cho nó từ các bảng khác không? Có thể có một số ứng dụng hữu ích nhưng đối với 99% ứng dụng ngoài kia, điều này đã đi quá xa. Nó chỉ là công việc nhiều hơn và hiệu suất ít hơn để đạt được ít hoặc không có lợi.

Vì vậy, tôi sẽ xem xét cách tôi muốn có thể truy vấn lại dữ liệu ra khỏi bảng. Thành thật mà nói trong trường hợp này, tôi có lẽ sẽ làm một bàn riêng cho công viên. Nhưng trong những trường hợp khác, tôi đã chọn không.

Đó là hai xu của tôi, một xu sau thuế.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhập tệp tin sql lớn django

  2. PHP - hàm cho mysql_fetch_assoc

  3. cách tạo giá trị hàng thành cột động trong mysql

  4. Thay đổi từ php-mysqld thành php-mysqlnd

  5. Ghi tệp từ trăn mysql BLOB