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

Třídicí strom se zhmotněnou cestou?

Věřím, že vaše zhmotněná cesta není správná.

Jakou logiku máte, abyste věci takto třídili

1
1.2
1
1.5

Proč není druhá 1 spolu s první?

Pokud jste měli

1
1.2
2
2.5

To by bylo triviální.

EDIT:Podíval jsem se na váš příklad a neukládáte zhmotněnou cestu řádku, ale ukládáte zhmotněnou cestu nadřazeného řádku. Zde je návod, jak by zhmotněná cesta řádku ve skutečnosti měla vypadat. Řazení přímo na matpath by fungovalo, pokud byste neměli více než 9 větví, pokud byste jej uložili jako:

 id | parent_id | matpath   |          created
----+-----------+-----------+----------------------------
  2 |         1 | 1.2       | 2010-05-08 15:18:37.987544
  6 |         2 | 1.2.6     | 2010-05-08 17:50:43.288759
  8 |         6 | 1.2.6.8   | 2010-05-09 14:01:17.632695
  3 |         1 | 1.3       | 2010-05-08 17:38:14.125377
  4 |         1 | 1.4       | 2010-05-08 17:38:57.26743
  5 |         1 | 1.5       | 2010-05-08 17:43:28.211708
  9 |         5 | 1.5.9     | 2010-05-09 14:02:43.818646
  7 |         1 | 1.7       | 2010-05-08 18:18:11.849735

jinak (>9) byste museli otočit matpath do něčeho jako

001.002.006
001.002.006.008

který by podporoval až 999 poboček.

Vezměte prosím na vědomí

  • dokonce i přístup se 4 pevnými číslicemi, jako je 0001.0002.0006 by vám poskytlo pole, které je kratší než v přijaté odpovědi
  • pomocí uživatelské funkce můžete za běhu analyzovat matpath a vytvářet hodnotu řazení
  • v tomto formátu můžete přímo uložit matpath (má také některé další pěkné vlastnosti)


  1. Jaký je správný index pro dotazování struktur v polích v Postgres jsonb?

  2. Zobrazte data SQLite v RecyclerView

  3. Jak mohu získat přístup k příkazovému řádku MySQL pomocí XAMPP pro Windows?

  4. Potenciální vylepšení pro aktualizace statistik:MAXDOP