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

Rozšíření tříd v databázi

Důrazně doporučuji, abyste se podívali na Dědičnost tabulky tříd vzor podle definice Martina Fowlera.

Tento návrhový vzor vytvoří jednu tabulku, která obsahuje data, která jsou například společná pro všechny budovy, a poté vyžaduje samostatnou tabulku pro všechna data související s konkrétním typem budovy. Jedna věc, kterou považuji za užitečnou, je uložit pole 'typ' do nadřazené tabulky, abyste věděli, jaký typ entity máte, aniž byste museli hledat odpovídající záznamy v podřízených tabulkách.

Doporučil bych, abyste se tomu vyhnuli, pokud nemáte velmi konkrétní, dobře definovaný důvod pro použití návrhu Entity-Attribute. Jednak se při použití tohoto typu návrhu stává nemožným využít omezení na databázi k řízení toho, jaké vstupy jsou vyžadovány a jaké typy hodnot jsou povoleny. Za druhé to drasticky zpomalí veškeré dotazy, které potřebují vytáhnout data z těchto typů polí, protože data uložená v těchto polích nelze indexovat, jako byste to obvykle dělali.



  1. Jak odebrat časovou část hodnoty datetime (SQL Server)?

  2. Průvodce návrhem databáze pro kvíz v MySQL

  3. Použití funkcí password_hash a password_verify PHP 5.5

  4. Názvy tabulek MySQL s malými písmeny ve Windows Velká jména v systému Unix