PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So stellen Sie Daten mit Unsicherheit in PostgreSQL dar

Es gibt verschiedene Möglichkeiten, sich Fuzzy-Daten zu nähern. In PostgreSQL können Sie

verwenden
  • ein Paar Datumsspalten (earliest_possible_date, Latest_possible_date),
  • eine Datumsspalte und eine Genauigkeitsspalte ('2012-01-01', 'year') oder
  • ein Bereichsdatentyp (Datumsbereich) oder
  • ein varchar ('2013-01-2?', '2013-??-05') oder
  • eine andere Tabelle oder Tabellen mit einem dieser Datentypen.

Der Bereichsdatentyp ist den neueren Versionen von PostgreSQL eigen. Sie können die anderen in jedem SQL-DBMS verwenden.

Die Art der Unschärfe, die Sie benötigen, ist anwendungsabhängig. Wie Sie Fuzzy-Daten abfragen, hängt davon ab, welchen Datentyp oder welche Struktur Sie auswählen. Sie müssen genau wissen, welche Arten von Unschärfe Sie speichern müssen und welche Art von Fragen Ihre Benutzer beantworten müssen. Und Sie müssen testen, ob Ihre Datenbank ihre Fragen beantworten kann.

Beispielsweise können Daten in Rechtssystemen schlecht in Erinnerung bleiben oder verunstaltet werden. Jemand könnte sagen:„Es war ein Donnerstag im Januar 2014. Ich weiß es war ein Donnerstag, weil es ein Tag der Müllabfuhr war", oder "es war letztes Jahr die erste Woche im Juni oder Juli". Um diese Art von Unschärfe aufzuzeichnen, benötigen Sie eine andere Tabelle.

Oder ein Poststempel ist entstellt, sodass nur noch „14.2014“ zu lesen ist. Sie wissen, dass es am 14. abgestempelt wurde, aber Sie wissen nicht, in welchem ​​Monat. Auch hier benötigen Sie eine weitere Tabelle.

Einige (alle?) davon werden Ihnen keine dreiwertige Logik geben, es sei denn, Sie springen durch einige Reifen. ("Möglich" ist kein gültiger boolescher Wert.)