10/10/2018, 10:35
Hỏi về cách insert dữ liệu!
Mình có 1 bài toán thế này.
Mình có 1 table sản phẩm với field mặc định là proid, yêu cầu là người dùng có thể tự tạo các field, sửa xóa các field mới trong table này. Vấn đề là mình không biết lấy giá trị của các field mới này khi thêm mới, sửa sản phẩm. Ai biết help mình với nhé!
Mình có 1 table sản phẩm với field mặc định là proid, yêu cầu là người dùng có thể tự tạo các field, sửa xóa các field mới trong table này. Vấn đề là mình không biết lấy giá trị của các field mới này khi thêm mới, sửa sản phẩm. Ai biết help mình với nhé!
Bài liên quan
Sau đó dùng hàm array_keys() hoặc for each để lấy tên các field.
Câu hỏi:
----------
Bảng X
T1: int (id)
T2: varchar | int | datetime | ... anything
----------
In ra
T1 T2
01 Dòng thứ nhất
02 54321
03 25/06/2010
Làm sao có thể chứa nhiều loại dữ liệu khác nhau vào cùng một bảng? Chả nhẽ sau khi người dùng thay đổi trường thì các dòng dữ liệu trước đó hết đọc luôn à?
Việc thực hiện nhiều loại dữ liệu chồng lên nhau trên thực tế có thể thực hiện được nhưng hoàn toàn không phải chuyện đơn giản.
Nếu thực sự bắt buộc phải làm thì nên tra cứu cách sử dụng variant field (MS SQL Server 2000+). Giải thích cái này dài lắm, không nói hết ở đây được.
Gặp loại QL CSDL không cho phép dùng variant thì phải tự nhái bằng cách lập một trường mã (dùng byte cho ngắn) và một trường chứa (varchar())
VD
Mã: 1=int, 2=date, 3=string, ...
Chứa: Đổi dữ liệu ra string và chứa vào trường này. Khi sử dụng thì đổi lại thành dạng ban đầu.
Lưu ý:
Nên nhớ rằng điều kiện căn bản của CSDL liên kết là các dòng của một bảng phải cùng một dạng. Cho phép thay đổi dạng chúng có nghĩa là chơi trò ép uổng. Quy trình thiết kế kiểu này cần được đặt một dấu chấm hỏi!
Còn như bạn nói thì mình xin giải thích là người dùng sẽ không thay đổi được thuộc tính của field, chỉ có thể thay đổi tên, xoá, và ẩn đi thôi nên vấn đề có lẽ sẽ đơn giản hơn.
Cách dễ nhất có lẽ là tạo ra nhiều mẫu view sẵn, người dùng chọn một view hợp ý nhất.