Tôi đang xây dựng một ứng dụng PHP/MySQL và tôi cho phép người dùng tạo dữ liệu hồ sơ tùy chỉnh của riêng họ (nghĩa là họ có thể thêm bất kỳ lượng thông tin nào vào tiểu sử của họ với các hộp văn bản bổ sung, nhưng có một nhóm CORE "" của các trường hồ sơ người dùng)MySQL nhưng không biết tên cột trước khi tay
Ví dụ: họ có thể tạo hộp văn bản mới trên biểu mẫu và gọi nó là "thú cưng của tôi" và/hoặc "màu yêu thích của tôi ". Chúng tôi cần lưu trữ dữ liệu này trong cơ sở dữ liệu và không thể tạo rõ ràng các cột cho từng lựa chọn của họ vì chúng tôi không biết thông tin bổ sung của họ là gì trước khi thực hiện.
Một cách chúng ta nghĩ rằng chúng ta có thể lưu trữ tất cả "info addidional" mà họ cung cấp là để lưu trữ thông tin bổ sung của họ như JSON và lưu trữ nó trong một lĩnh vực văn bản MySQL (Tôi yêu MySQL :))
Tôi đã nhìn thấy Wordpress form builder plugins, nơi bạn có thể tạo các trường của riêng mình vì vậy tôi nghĩ rằng chúng phải lưu trữ dữ liệu trong MySQL bằng cách nào đó vì các giải pháp NoSQL nằm ngoài phạm vi của các plugin này.
Tôi rất muốn gắn bó với MySQL nhưng các bạn có nghĩ rằng các giải pháp NoSQL như MongoDB/Redis sẽ là một giải pháp tốt hơn vì điều này?
Cảm ơn
Câu trả lời, bao giờ hết là _it depends_. Nếu bạn đã có hàng trăm nghìn người dùng, bạn sẽ cần phải thử nhiều giải pháp khác nhau để xem những gì sẽ mở rộng. Tuy nhiên, đối với một tập hợp nhỏ các tùy chọn cho một tập hợp các hàng tương đối nhỏ, JSON hoặc một giá trị PHP được tuần tự hóa, trong db quan hệ hiện có của bạn, là tốt. Tôi nghĩ rằng Wordpress sử dụng serialization nội bộ cho một số hồ sơ tùy chọn của nó. – halfer
+1 cho một câu hỏi thú vị và một tính năng thú vị :-) –