Názvy tabulek a sloupců v konstantách a maglajs při concatování
- H0w4rd
- Člen | 96
U nás si lidi oblíbili, že píšou do každého repository konstanty s názvem tabulky TABLE_NAME a s názvy sloupců COLUMN_ID, COLUMN_NAME, atd…
Problém je, že konstanty se nedají rozumně concatovat do stringu když píšete SQL a vzniká nepřehledný chaos spojování stringů tečkami, příklad:
$unavailabilityTypes = $this->unavailabilityTypeRepository
->findBy(
[
":" . WorkCommitmentUnavailabilityTypeRepository::TABLE_NAME . '.' . WorkCommitmentRepository::TABLE_NAME . ':' . UserRepository::TABLE_NAME . '.' . UserRepository::COLUMN_ID => $this->user->id,
":" . WorkCommitmentUnavailabilityTypeRepository::TABLE_NAME . '.' . WorkCommitmentUnavailabilityTypeRepository::COLUMN_NOT_DELETED => 1,
":" . WorkCommitmentUnavailabilityTypeRepository::TABLE_NAME . '.' . WorkCommitmentRepository::TABLE_NAME . ':' . UserRepository::TABLE_NAME . '.' . UserRepository::COLUMN_NOT_DELETED => 1,
UnavailabilityTypeRepository::TABLE_NAME . '.' . UnavailabilityTypeRepository::COLUMN_MAX_HOURS_PER_YEAR . ' IS NOT NULL' ,
]
);
Bojuju s (ne)přehledností kódu, moc se mi to nelíbí a hledám způsob, jak zpřehlednit kód a nepřijít o výhody.
Má to samozřejmě jednu podstatnou výhodu, že IDE umí snadno najít všechny výskyty použití toho daného sloupce – kromě views, procedur, funkcí, triggerů – což je už první věc, proč s tím mám problém – stejně to použití nedohledám všude. Takže otázka je, jestli je to skutečná výhoda a jestli to za ten nečitelný chaos stojí.
Chtěl bych se hlavně zeptat, jak vy to děláte, jak se vám to nejlíp
osvědčilo?
Neřešíte to a sypete názvy sloupců do kódu natvrdo?
Nebo máte nějaké pre/postfixy, díky kterým najdete spolehlivě všechny
výskyty?
Nebo třeba máte názvy slouců v běžných proměnných, které se dají
concatovat do uvozovkového stringu docela přehledně?
Vlastně jsem si tady nastínil několik možných řešení, ale opravdu mě
nejvíc zajímá, jak to děláte.
Editoval H0w4rd (24. 1. 2023 15:50)
- Kamil Valenta
- Člen | 820
My jsme si položili otázku „kolikrát za poslední 4 roky“ bylo
potřeba přejmenovat tabulku nebo nějaký sloupec.
A protože odpověď byla 0×, ne, taková divočina s konstantami by nám za
to nestála.
Z historických důvodů máme možnost v neonu definovat prefix názvů
tabulek, ale ani to nebylo ani jednou použito…