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

Správný databázový model pro systém zpětné vazby od uživatelů (zajímavý případ)

Toto je špatný design. Stačí vytvořit 2sloupcový primární klíč a k němu 2sloupcové cizí klíče. Toto je základní anti-vzor nazývaný „kódování informací v klíčích“, které se (proto) nazývají „chytré“, „inteligentní“ nebo „zřetězené“ klíče. Dobrý klíč je "hloupý" klíč.

Např. :

Kromě toho to není potřeba udělat to.

Mnoho DBMS umožňuje "počítané sloupce", jejichž hodnoty se automaticky počítají z jiných sloupců. Chcete-li z něj udělat primární klíč nebo cizí klíč, obvykle byste jej potřebovali „přetrvávat“, tj. zabírat paměť jako běžný sloupec vs, aby se počítalo v případě potřeby jako pohled. MySQL je nemá, ale 5.7.5 má nějakou funkcionalitu, kde se nazývají "generované sloupce", které lze "ukládat". Ale nedělejte to pro PK nebo FK!

Skutečným problémem návrhu je zpracování databáze/podtypů SQL/hierarchie/dědění/polymorfismus .




  1. Jak najít názvy sloupců pro všechny tabulky ve všech databázích na SQL Server

  2. Jak importovat obrovský soubor CSV s 200 00 řádky do MySQL (asynchronní a rychlý)?

  3. Získávání dat z uložené procedury pomocí Entity Framework

  4. Co je s (nolock) na serveru SQL?