Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pierwsza forma normalna oraz imię i nazwisko

1NF dotyczy atomowości, a nie redundancji (o to chodzi w wyższych normalnych formach). Zasadniczo, jeśli wszystkie atrybuty są niepodzielne, twoja tabela jest w 1NF.

Oczywiście to, czy tabela jest w 1NF, zależy od tego, co definiujesz jako „atomowe”. To, co właściwie oznacza „atomowość” jest kwestią kontrowersyjną, ale przyjmę tu pragmatyczne podejście do każdego przypadku i po prostu zapytam:

W kontekście problemu, który próbuję rozwiązać, czy kiedykolwiek ma sens uzyskiwanie dostępu do jakiejkolwiek części wartości, czy zawsze mam dostęp do całej wartości?

Jeśli zawsze mam dostęp do całości, jest to atomowe w tym konkretnym kontekście.

W twoim przykładzie prawdopodobnie będziesz chciał uzyskać dostęp do first_name i last_name osobno, więc full_name byłoby nieatomowe i to byłby powód naruszenia 1NF. Jeśli jednak wiesz, że nigdy nie będziesz potrzebować oddzielnego dostępu do imienia i nazwiska, możesz po prostu full_name i nadal nie narusza 1NF.

„Uzyskiwanie dostępu” do wartości powinno być tutaj rozumiane dość szeroko. Może to oczywiście oznaczać odczytanie go z bazy danych, ale może również oznaczać użycie go w ograniczeniu, indeksowanie itp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać symboli wieloznacznych z przedrostkiem, takich jak „*abc” z dopasowaniem przeciw

  2. JOIN i GROUP_CONCAT z trzema tabelami

  3. mysql skomplikowany sql

  4. Czy BLOB jest konwertowany przy użyciu bieżącego/domyślnego zestawu znaków w MySQL?

  5. Problem z PHP i Mysql UTF-8 (znak specjalny)