Ano, je normální ukládat předem vypočítané hodnoty na základě jiných dat v databázi do databáze. Ale ne nutně z důvodu, který uvádíte. Nikdy jsem neměl problém s MAX_JOIN_SIZE
.
Hlavním a pravděpodobně jediným důvodem pro ukládání vypočtených hodnot je rychlost. Takže to uděláte pro hodnoty, které se tak často nemění a které mohou být použity v dotazech, které používají velké množství dat, a proto mohou být příliš pomalé, pokud jste je nepoužili.
Například:Pokud chcete znát průměrnou hodnotu všech objednávek ve vaší databázi, dotaz by byl mnohem rychlejší, pokud již máte součty objednávek.
Proč a jak hodnoty aktualizujete, je zcela na vás. Nicméně v tom musíte být důslední . Pokud použijete vzor MVC, mělo by smysl jej integrovat do ovladače. Nebo jednoduše:Kdykoli je odeslán formulář, který by mohl změnit jednu z hodnot, ze kterých se vypočítává předem vypočítaná hodnota, musíte ji přepočítat.
Toto je jasná ukázka, kde „normalizace“ není zcela zachována. Není to moc hezké, ale někdy to stojí za to. Můžete samozřejmě namítnout, že vypočtená hodnota představuje „nové“ informace, a proto neuráží „normalizaci“.