Yêu cầu của tôi là:
- Cần có khả năng tự động thêm các trường do Người dùng xác định thuộc bất kỳ loại dữ liệu nào
- Cần có khả năng truy vấn UDF nhanh chóng
- Cần có khả năng tính toán trên UDF dựa trên kiểu dữ liệu
- Cần có khả năng sắp xếp UDF dựa trên kiểu dữ liệu
Thông tin khác:
- Tôi đang tìm kiếm hiệu suất chủ yếu
- Có một vài triệu bản ghi Master có thể có dữ liệu UDF được đính kèm
- Khi tôi kiểm tra lần cuối, có hơn 50 triệu bản ghi UDF trong cơ sở dữ liệu hiện tại của chúng tôi
- Hầu hết thời gian, một UDF chỉ được đính kèm với một vài ngàn hồ sơ Master, không phải tất cả chúng
- UDF không được nối hoặc sử dụng làm khóa. Chúng chỉ là dữ liệu được sử dụng cho truy vấn hoặc báo cáo
Tùy chọn:
Tạo một bảng lớn với StringValue1, StringValue2 ... IntValue1, IntValue2, ... vv Tôi ghét ý tưởng này, nhưng sẽ xem xét nó nếu ai đó có thể cho tôi biết nó tốt hơn những ý tưởng khác và tại sao.
Tạo một bảng động có thêm một cột mới theo yêu cầu khi cần thiết. Tôi cũng không thích ý tưởng này vì tôi cảm thấy hiệu suất sẽ chậm trừ khi bạn lập chỉ mục cho mỗi cột.
Tạo một bảng duy nhất chứa UDFName, UDFDataType và Value. Khi UDF mới được thêm vào, hãy tạo Chế độ xem chỉ lấy dữ liệu đó và phân tích nó thành bất kỳ loại nào được chỉ định. Các mục không đáp ứng tiêu chí phân tích cú pháp sẽ trả về NULL.
Tạo nhiều bảng UDF, mỗi bảng một kiểu dữ liệu. Vì vậy, chúng tôi sẽ có các bảng cho UDFStrings, UDFDates, v.v. Có lẽ sẽ làm tương tự như # 2 và tự động tạo Chế độ xem bất cứ khi nào một trường mới được thêm vào
Dữ liệu XML? Tôi đã không làm việc với những điều này trước đây nhưng đã thấy chúng được đề cập. Không chắc họ có cho tôi kết quả tôi muốn hay không, đặc biệt là với hiệu suất.
Thứ gì khác?