Tôi có một bảng trong DB (Postgres based), hoạt động giống như một siêu lớp trong lập trình hướng đối tượng. Nó có một cột 'type' để xác định, các cột bổ sung nào sẽ có mặt trong bảng (các thuộc tính lớp con). Nhưng tôi không muốn bảng bao gồm tất cả các cột có thể (tất cả các thuộc tính của tất cả các loại có thể). Vì vậy, tôi quyết định tạo một bảng, tiếp theo các cột 'then chốt' và 'giá trị' (tức là 'tên tệp' = '/ tệp', hoặc 'some_value' = '5'), có chứa bất kỳ thuộc tính có thể có nào của đối tượng, không được bao gồm trong bảng superclass. Và cũng đã tạo một bảng liên quan để chứa các giá trị 'chìa khóa' có sẵn.Cấu trúc DB tối ưu cho các trường bổ sung thực thể
Nhưng có một vấn đề với kiến trúc như vậy - cột 'giá trị' phải thuộc loại dữ liệu chuỗi theo mặc định, để có thể chứa bất kỳ thứ gì. Nhưng tôi không nghĩ chuyển đổi sang và từ dây là một quyết định tốt. Cách tốt nhất để vượt qua giới hạn này là gì?