2012-07-01 3 views
6

Скажем, у меня есть база данных с метками времени. Для каждого атрибута timestamp я мог бы добавить атрибут точности, указав доверительный интервал, поэтому хранящаяся информация может быть, например, «1 июля 2012 года 12:13, +/- 3 месяца».Как я могу моделировать точность/достоверность данных в базе данных?

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

Есть ли общие принципы или рекомендации по хранению информации с различными уровнями точности/уверенности?

ответ

4

С примером вашего отца это легко; невозможно быть более чем на 100% уверенным, что кто-то является отцом кого-то другого; вообще невозможно быть более чем на 100% уверенным в чем угодно! Это, в свою очередь, подразумевает, что для всего вы можете просто сохранить процентный уровень достоверности любого атрибута данных.

Однако, вы можете не захотеть сохранить уровень достоверности в процентах; это зависит от самого атрибута данных, а значение означает данных.

Например, если вы хотите сохранить, как «точная» конкретная строка сравнивается с другой, вы можете вместо этого сохранить Levenshtein distance. В вашем примере временной отметки я лично сохранил минимальные и максимальные значения, хотя вы также могли бы хранить количество месяцев, которые вы добавляли или вычитали; либо быстро вычислить при выборе из базы данных.

То, что я, возможно, неясно, пытается написать, заключается в том, что ответ на ваш вопрос не зависит от базы данных, а от данных и потребностей ваших пользователей, бизнеса и т. Д. Поскольку это зависит от для данных каждого отдельного атрибута или столбца требуется решение ; не может быть «общего» решения.

Смежные вопросы