Page tree
Skip to end of metadata
Go to start of metadata

Väčšina aplikácií funguje na rovnakom princípe, s rovnakou základnou štruktúrou tabuliek, názvoslovia modulov, parametrov, atď.

Moduly s rovnakým štandardom majú v názve zhodnú verziu.

Najstarší štandard je kombinácia lite a full. Táto verzia modulov používala starý templatovací systém XSGN.

Novší štandard je tpl, zvyčajne len prepis lite verzie na TT2 template.

Najviac používaný je data štandard verzie 2013, s TT2 templatmi.

Dataštandard 2013

Databázový model

Názvoslovie tabuliek: aAPP_ENTITA_PODENTITA v jednotnom čísle, napr.:

a401_article
a910_product
a910_product_brand
a910_product_brand_lng

Tabuľky by mali mať aj žurnálovú verziu, so suffixom _j.

Záznamy v tabuľke majú povinne:

stĺpechodnota
IDunikátne ID položky
ID_entityneunikátne ID položky. jedno ID_entity môže mať viac ID

nepovinne, odporúčané:

stĺpechodnotadefault
datetime_createtimestamp vytvorenia záznamuNOW()
posix_ownerunikátny USRM hash používateľa, ktorý záznam vytvorilhash aktuálneho/prihláseného používateľa
statusstav záznamu - zvyčajne Y(es)/N(o)/W(ait)/T(rash)N

Pre kategorízáciu obsahu sa zvyčajne používaj[ tabuľky so suffixom _cat.

Povinné údaje pre strom:

stĺpechodnotahodnoty
ID_charindexalfanumerická "cesta", delená na vetvy bodkočiarkou
každá ďalšia položka na rovnakej úrovni má znak v poradí 0-9a-zA-Z
ak je posledný znak Z, posunie sa o pozíciu vyššie a aktuálna pozícia sa nastaví znova na 0
štandardne je dĺžka charindexu pre úroveň 3 znaky, ale je možné ju pre veľké stromy navýšiť
001
001:032
001:032:a17
namenázov kategórie - unikátny pre aktuálnu vetvu

Vytváranie záznamu

Pre vytvorenie nového záznamu by sa mala používať generická funkcia z a020.

Ideálne by sa mal vždy pridávať aj parameter journalize, aby sa zmena preniesla do žurnálovej tabuľky.

Data je možné do funkcie poslať dvomi cestami:

  1. data - údaje, ktoré sú automaticky SQL escapované
  2. columns - údaje, ktoré sa vkladajú as-is (napr. NOW() by sa pri poslaní cez data zmenilo na string > neuložil by sa aktuálny datetime)

Pridanie nového unikátneho záznamu

my $ID = App::020::SQL::functions::new
(
	'db_name' => $App::010::db_name,
	'tb_name' => 'a010_entity',
	'data'=>
	{
		%data
	},
	'columns'=>
	{
		%columns
	},
	'-journalize' => 1
);

Pridanie nového záznamu pre existujúcu entitu

my $ID = App::020::SQL::functions::new
(
	'db_name' => $App::010::db_name,
	'tb_name' => 'a010_activity',
	'data'=>
	{
		'ID_entity' => 124,
		%data
	},
	'columns'=>
	{
		%columns
	},
	'-journalize' => 1
);

Parametre pre list modul

parameterhodnotadefault
page_limitpočet položiek na stránku10
pageaktuálna strana1
page_offsetodsadenie strany0
page_plusodsadenie od začiatku1
sql_limitlimit v SQL zápisevypočítaný z page* parametrov
sql_wherepodmienky v SQL zápise, dopĺňajú sa na koniec WHERE bloku
sql_order_byzoradenie v SQL zápisepodľa typu aplikácie, zvyčajne datetime_create DESC, alebo datetime_publish_start DESC
uniquezoskupenie záznamov podľa ID_entity
a430_list.IDa430 zoznam - ak je definovaný, overriduje zoznam ID/ID_entity aj sql_order_by
{entita}.IDbodkočiarkou delený zoznam ID
{entita}.ID_entitybodkočiarkou delený zoznam ID_entity
{entita}_cat.IDbodkočiarkou delený zoznam ID kategórie
{entita}_cat.ID_entitybodkočiarkou delený zoznam ID_entity kategórie
{entita}.statusbodkočiarkou delený zoznam povolených stavovY

Parametre pre view modul

parameterhodnotadefault
{entita}.IDbodkočiarkou delený zoznam ID
{entita}.ID_entitybodkočiarkou delený zoznam ID_entity
{entita}_cat.IDbodkočiarkou delený zoznam ID kategórie
{entita}_cat.ID_entitybodkočiarkou delený zoznam ID_entity kategórie
{entita}.statusbodkočiarkou delený zoznam povolených stavovY
sql_order_byzoradenie v SQL zápise
  • No labels