Mảng
Trước hết, chúng ta hãy xem xét kỹ văn bản quan trọng này từ tài liệu Mảng Postgresql.
Mẹo:Mảng không phải là tập hợp; tìm kiếm các phần tử mảng cụ thể có thể có dấu hiệu của việc thiết kế sai cơ sở dữ liệu. Hãy xem xét sử dụng một bảng riêng biệt với arow cho mỗi mục sẽ là một phần tử mảng. Điều này sẽ dễ dàng hơn để tìm kiếm và có khả năng mở rộng quy mô tốt hơn cho một số lượng lớn các thành phần.
Thông thường, bạn không nên sử dụng mảng.
JSONB
JSONB có sẵn trong Django dưới dạng loại JSONField. Trường này có khả năng mở rộng và linh hoạt hơn các trường mảng và có thể được tìm kiếm hiệu quả hơn. Tuy nhiên, nếu bạn luôn tìm kiếm bên trong các trường JSONB thì câu lệnh trên về Mảng cũng có giá trị như nhau đối với JSONB.
Bây giờ bạn có gì trong hệ thống của mình? Một mảng chứa trường JSONB. Đây là một thảm họa đang chờ xảy ra. Vui lòng chuẩn hóa dữ liệu của bạn.
Tóm tắt lại
vậy khi nào sử dụng ArrayField?
Trong một số trường hợp hiếm hoi khi bạn không cần tìm kiếm trong cột đó và bạn không cần sử dụng cột đó để tham gia.