Мої вимоги:
- Потрібно мати можливість динамічно додавати визначені користувачем поля будь-якого типу даних
- Потрібно мати можливість швидко запитувати UDF
- Потрібно вміти робити розрахунки для АДС на основі типу даних
- Потрібно мати можливість сортувати UDF на основі типу даних
Інша інформація:
- Я насамперед шукаю продуктивність
- Є кілька мільйонів основних записів, до яких можуть бути додані дані UDF
- Коли я востаннє перевіряв, у нашій базі даних було понад 50 мільйонів записів UDF
- Більшу частину часу до АДС додається лише кілька тисяч головних записів, не всіх
- UDF не приєднуються і не використовуються як ключі. Вони просто дані, які використовуються для запитів чи звітів
Параметри:
Створіть велику таблицю за допомогою StringValue1, StringValue2 ... IntValue1, IntValue2, ... і т. Д. Я ненавиджу цю ідею, але буду розглядати її, якщо хтось може мені сказати, що вона краще, ніж інші ідеї і чому.
Створіть динамічну таблицю, яка додасть новий стовпець за потребою. Мені також не подобається ця ідея, оскільки я вважаю, що ефективність буде повільною, якщо ви не індексуєте кожен стовпець.
Створіть єдину таблицю, що містить UDFName, UDFDataType та Value. Коли додається новий UDF, генеруйте представлення, яке витягує саме ці дані та аналізує їх на будь-який тип вказаного типу. Елементи, які не відповідають критеріям розбору, повертають NULL.
Створіть кілька таблиць UDF, по одній на тип даних. Таким чином, у нас були б таблиці для UDFStrings, UDFDates тощо. Можливо, зробили б те ж, що і №2, і автоматично генерують перегляд будь-коли, коли буде додано нове поле.
XML DataTypes? Я не працював з ними раніше, але бачив їх згадування. Не впевнений, чи дадуть мені результати, які я хочу, особливо з продуктивністю.
Щось ще?