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

Jak ušetřit, zpracovat celkovou částku objednávky v objednávkách, schématu podrobností objednávek?

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“.



  1. JPA:MySQL říká, že tabulka neexistuje, ale ve skutečnosti existuje

  2. mysql vložte výsledek víceřádkového dotazu do tabulky

  3. Jak můžete spustit stejný dotaz vícekrát pomocí smyčky v PL/SQL?

  4. mysql> vytvořit test databáze; ERROR 1006 (HY000):Nelze vytvořit databázi „test“ (chyba:2)