Пользовательские формулы в базе данных MySQL - PullRequest
1 голос
/ 03 февраля 2012

У меня есть что-то вроде схемы снежинки, которая разбивает данные, которые я получаю в форме электронной таблицы, на числовые значения, которые входят в одну таблицу, и информацию о том, что было измерено, по каким предметам, какой столбец электронной таблицы изначально занимал, как,когда, кем и т. д. в сеть других таблиц включаются внешние ключи.

У меня есть хранимая процедура, которая динамически создает и запускает запрос с кучей объединений, которые могут воссоздать любую из исходных электронных таблиц или имитировать полное внешнее объединение для любой выбранной пользователем комбинации столбцов из этих электронных таблиц (объединенныхна данные, полученные от тех же самых испытуемых).

Но часто входные электронные таблицы содержат формулы.Я не хочу трактовать эти вычисленные значения как статические данные, потому что тогда, если позже в необработанные данные будут внесены исправления, они не будут распространяться, и потому что новые формулы иногда будут добавляться после факта

Может кто-нибудь предложить универсальныйшаблон проектирования для хранения формул, связанных с определенным типом данных, и запуска их в выводе по запросу пользователя?Изначально я хотел сделать все на уровне БД, но, увидев, насколько ограничены агрегатные и статистические функции MySQL, я согласен на передачу формул на прикладной уровень (PHP).

ЭтоОбщий вопрос о дизайне базы данных, поэтому я не знаю, насколько подробно это полезно.Если мой вопрос слишком расплывчатый, пожалуйста, дайте мне знать, какую дополнительную информацию я должен включить, и я соответствующим образом переформулирую этот вопрос.Спасибо.

1 Ответ

1 голос
/ 03 февраля 2012

Поскольку ваши формулы в базе данных должны быть в состоянии полностью представить любую формулу, которая может быть указана в электронной таблице, я бы просто сохранил формулу в том же формате, который используется в электронной таблице.

Сохраняйте их как столбцы типа varchar или text, обязательно экранируя значения, или как varbinary или blob. Пока у вас есть способ отобразить имена столбцов в формулах обратно на значения столбцов, что, как я думаю, вы заявили, что можете сделать, тогда все готово.

...