sql >> Databáze >  >> RDS >> PostgreSQL

Jak reprezentovat data s nejistotou v PostgreSQL

Existuje několik různých způsobů, jak přistupovat k fuzzy datům. V PostgreSQL můžete použít

  • pár sloupců data (nejstarší_možné_datum, nejnovější_možné_datum),
  • sloupec data a sloupec přesnosti ('2012-01-01', 'year'), nebo
  • a typ dat rozsahu (daterange), nebo
  • a varchar ('2013-01-2?', '2013-??-05'), nebo
  • jinou tabulku nebo tabulky s kterýmkoli z těchto datových typů.

Datový typ rozsahu je typický pro nejnovější verze PostgreSQL. Ostatní můžete použít v jakémkoli SQL dbms.

Druh fuzziness, který potřebujete, závisí na aplikaci. Způsob dotazování na fuzzy data závisí na tom, jaký datový typ nebo strukturu vyberete. Potřebujete pevné uchopení toho, jaké druhy nejasností potřebujete ukládat a jaké otázky potřebují vaši uživatelé odpovědět. A musíte otestovat, abyste se ujistili, že vaše databáze dokáže odpovědět na jejich otázky.

Například v právních systémech mohou být data zapamatována špatně nebo poškozena. Někdo by mohl říct:„Byl to nějaký čtvrtek v lednu 2014. vím byl čtvrtek, protože to byl den svozu odpadků“, nebo „Byl to první týden v červnu nebo červenci loňského roku“. K zaznamenání tohoto druhu nejasností potřebujete další stůl.

Nebo může být poštovní razítko poškozeno, takže můžete číst pouze „14, 2014“. Víte, že to bylo 14. poštovního razítka, ale nevíte, který měsíc. Opět potřebujete další stůl.

Některé (všechny?) z nich vám neposkytnou trojhodnotovou logiku, pokud neproskočíte přes nějaké obruče. ("Possible" není platná logická hodnota.)



  1. vyberte dotaz a počítejte na základě podmínky

  2. Pusťte více tabulek najednou v MySQL

  3. Zobrazit úroveň izolace pro dotaz v mysql

  4. PHP - Pole jednoduchého vnořeného neuspořádaného seznamu (UL).