Trả lời ngắn gọn, Nhiều cột.
dài trả lời:
Đối với tình yêu của tất cả những gì là thánh trên thế giới xin đừng lưu trữ mutiple bộ dữ liệu trong một cột văn bản duy nhất
Tôi giả sử bạn sẽ có một bảng mà một trong hai sẽ
+------------------------------+ +----------------------+
| User | cell | office | home | OR | User | JSON String |
+------------------------------+ +----------------------+
Trước tiên, tôi sẽ nói cả hai giải pháp này không phải là giải pháp tốt nhất nhưng nếu bạn chọn từ hai giải pháp đầu tiên là tốt nhất. Có một vài lý do chủ yếu mặc dù khả năng sửa đổi và truy vấn cụ thể là thực sự quan trọng. Hãy suy nghĩ về algrothim để thay đổi tùy chọn thứ hai.
SELECT `JSON` FROM `table` WHERE `User` = ?
Then you have to do a search and replace in either your server side or client side language
Finally you have to reinsert the JSON string
Giải pháp này tổng cộng 2 truy vấn và thuật toán tìm kiếm và thay thế. Không tốt!
Bây giờ hãy nghĩ về giải pháp đầu tiên.
SELECT * FROM `table` WHERE `User` = ?
Then you can do a simple JSON encode to send it down
To modify you only need one Query.
UPDATE `table` SET `cell` = ? WHERE `User` = ?
to update more than one its again a simple single query
UPDATE `table` SET `cell` = ?, `home` = ? WHERE `User` = ?
Đây rõ ràng là tốt hơn nhưng nó không phải là tốt nhất
Có một giải pháp thứ ba Giả sử bạn muốn có một người sử dụng để có thể chèn một số vô hạn các số điện thoại.
Cho phép sử dụng bảng quan hệ cho điều đó để bây giờ bạn có hai bảng.
+-------------------------------------+
+---------+ | Phone |
| Users | +-------------------------------------+
+---------+ | user_name| phone_number | type |
| U_name | +-------------------------------------+
+---------+
Bây giờ bạn có thể truy vấn tất cả các số điện thoại của một người dùng với một cái gì đó như thế này
Bây giờ bạn có thể truy vấn bảng thông qua một tham gia
Người dùng SELECT. , điện thoại. TỪ Điện thoại, Người dùng WHERE phone.user_name =? AND Users.U_name =?
Chèn cũng dễ dàng và việc kiểm tra kiểu cũng dễ dàng.
nhớ rằng đây là một ví dụ đơn giản nhưng thực sự SQL cung cấp một tấn năng lượng để cấu trúc dữ liệu của bạn, bạn nên sử dụng nó chứ không phải tránh nó