Tôi cố gắng để cân nhắc những ưu và khuyết điểm tương đối của một cấu trúc cơ sở dữ liệu đơn giản như thế này:thiết kế cơ sở dữ liệu: tính linh hoạt so với sự đơn giản
1.
CREATE TABLE x (
my_id INT PRIMARY KEY,
...,
text_attribute_blah TEXT,
text_attribute_blah_blah TEXT
);
vs:
2.
CREATE TABLE x (
my_id INT PRIMARY KEY,
...
)
CREATE TABLE attributes (
my_id INT, /* foreign key to x.my_id */
text_attribute_type INT,
text_attribute TEXT
)
Trường hợp attribute_type có thể là blah hoặc blah_blah.
Tùy chọn 1 cung cấp sự đơn giản - bảng dễ đọc/ghi; Tùy chọn 2 cung cấp tính linh hoạt (nếu chúng tôi muốn thêm thuộc tính khác như blah_blah_blah, chúng tôi không cần thực hiện thay đổi lược đồ và có thể ít thay đổi về mã hơn.)
Có câu trả lời đúng/sai cho câu hỏi này không? Một trong những tùy chọn này có được coi là thực hành tốt hơn các phương pháp khác không? Bạn có thể chỉ cho tôi đọc thêm có thể giúp xác định con đường phía trước không?
Tính linh hoạt được đánh giá quá mức, nếu bạn thực hiện thay đổi lược đồ công việc của bạn nên hiếm. Trong thời gian hết hạn của tôi, người dùng ghét sử dụng các chương trình "linh hoạt" ngay cả khi đó là những gì họ nói họ muốn. – HLGEM