sql >> Databáze >  >> RDS >> Mysql

Jak kodifikovat a ukládat dynamická omezení oprávnění?

No, toto je jedna z oblastí, která stále vyvolává poměrně velkou diskusi. Jak někteří říkají [kdo? – myslím, že to byl Atwood mezi ostatními lidmi, ale uniká mi odkaz], aplikace, která umí vše, již byla vyrobena; nazývá se to C. To, co chcete udělat, hraničí téměř s „příliš zobecněnou“ oblastí, i když vidím hodnotu v tom, že nepotřebuji programátora pokaždé, když se změní obchodní pravidlo.

Pokud bych měl implementovat takový systém, asi bych to zkusil rozdělit na domény. Už u druhého stolu jste to udělali poměrně dobře. Stačí to normalizovat do samostatných domén, které se používají ke skládání obchodních pravidel. Vytvoříte obchodní pravidlo, které se skládá z 1 nebo více omezení NEBO spojených dohromady. Každé omezení potřebuje vlastnost, která je omezena operátorem vůči termínu. Termíny mohou být složité, protože mohou být čímkoli od vlastnosti přes funkci až po složenou funkci. Pravděpodobně nejjednodušší je zkontrolovat obchodní pravidla a zjistit, co potřebujete. Začněte například vlastnostmi, logickými hodnotami a běžnými věcmi, jako je 'TEĎ.

Takže samotné schéma by se například skládalo z rules , které obsahují více constraints (samozřejmou výhodou je, že je můžete spojit s jakoukoli [skupinou uživatelů/nabídkou/časovým rozsahem/jinou doménou], kterou chcete). Ty se zase skládají z properties , což by bylo srovnatelné s jedním z operators (referenční tabulka většinou proto, abyste mohli zadat vlastní popisná jména pro neprogramátory, ale v určitém okamžiku do ní můžete zadat vlastní funkce) a samozřejmě jeden z terms . Poslední část je nejsložitější, takže ji pravděpodobně budete muset kvalifikovat pomocí ID v term_types takže byste věděli, zda srovnáváte s jinou vlastností nebo funkcí. Můžete také jednoduše VARCHAR a vytvořte pole pomocí PHP, což by nemělo být příliš obtížné, vzhledem k tomu, jak máte všechny možnosti v properties a/nebo functions .

Je to systém s velmi otevřeným koncem (a pravděpodobně existují lepší způsoby, jak toho dosáhnout), takže to pravděpodobně nemá cenu dělat, pokud nevíte, že budete potřebovat vysoký stupeň dynamiky v obchodních pravidlech.




  1. Mysql automaticky přidá předpony do polí

  2. Seznam povolených rozsahů IP adres pomocí cPanel

  3. Jak zobrazit průběh nahrávání .csv v MySQL

  4. Použití parametru SqlParameter v klauzuli SQL LIKE nefunguje