Việc chia dữ liệu này thành các cột riêng biệt là một khởi đầu rất tốt (các giá trị được phân tách theo kiểu hôn mê là một dị giáo). Tuy nhiên, "số lượng thuộc tính có thể thay đổi" thường phải được mô hình hóa dưới dạng một-to- nhiều mối quan hệ .
CREATE TABLE main_entity (
id INT PRIMARY KEY,
other_fields INT
);
CREATE TABLE entity_properties (
main_entity_id INT PRIMARY KEY,
property_value INT,
FOREIGN KEY (main_entity_id) REFERENCES main_entity(id)
);
entity_properties.main_entity_id
là một khóa ngoại
tới main_entity.id
.
Xin chúc mừng, bạn đang đi đúng hướng, điều này được gọi là chuẩn hóa . Bạn sắp đạt đến Biểu mẫu thông thường đầu tiên.
Tuy nhiên, theo Beweare, các thuộc tính này phải có bản chất tương tự nhau (ví dụ:tất cả số điện thoại hoặc địa chỉ, v.v.). Đừng rơi vào mặt tối (còn gọi là Chống mẫu thực thể-thuộc tính-giá trị ), và bị cám dỗ để ném tất cả các thuộc tính vào cùng một bảng. Nếu bạn có thể xác định một số loại thuộc tính, hãy lưu trữ mỗi loại trong một bảng riêng biệt.