Tôi có MỘT trang html dài, một số bộ câu hỏi được chia thành các phần nhỏ (khoảng 15 phần phụ trong một trang), tổng số câu hỏi là khoảng 100 câu hỏi: thay đổi từ đầu vào, nhiều lựa chọn, hộp kiểm, nút radio, textarea, và tải lên tập tin. Một câu hỏi có thể chứa nhiều câu trả lời thu được từ nhóm các hộp kiểm, nhóm danh sách chọn, nhóm đa lựa chọn hoặc tất cả chúng được kết hợp thành một câu trả lời. Tôi nghĩ rằng tôi sẽ sử dụng thiết kế cơ sở dữ liệu này bên dưới nhưng gần đây phát hiện ra rằng đó không phải là cách tiếp cận tốt.
- Một khách hàng chỉ có thể có một bộ câu hỏi: một khách hàng trên 100 câu hỏi.
- Đối với cách tiếp cận cũ, tôi không giữ câu hỏi trong cơ sở dữ liệu mà chỉ định là hằng số trong mã hóa PHP. Vấn đề là tôi phải so sánh câu hỏi trong PHP để làm cho nó đồng bộ hóa với câu trả lời trong cơ sở dữ liệu. Nếu một câu hỏi đã bị thay đổi / xóa / chuyển khỏi PHP, tôi chắc chắn sẽ bị lạc để khớp với câu trả lời trong cơ sở dữ liệu Câu hỏi. Giải pháp tốt hơn?
- Tôi có thể giữ nhiều câu trả lời thu được từ nhiều yếu tố trong một trường thành một câu trả lời không? Làm cách nào tôi có thể truy xuất trường này và hiển thị lại cho khách hàng xem trên biểu mẫu?
- Tôi nên chọn phương án nào dưới đây?
TÙY CHỌN 1: Cách tiếp cận cũ (1 bảng)
BẢNG: Bảng câu hỏi
- ID (PK)
- ID khách hàng
- Trạng thái
- A1
- A2
- A3
- .
- .
- .
- A100
TÙY CHỌN 2: Cách tiếp cận mới (2 bảng)
BẢNG: Câu hỏi
- QID (PK)
- Câu hỏi (varchar)
BẢNG: Trả lời
- AID (PK)
- ID khách hàng
- QID (int)
- Trả lời (varchar)
Hoặc TÙY CHỌN 3?