Taktik der SQL Server-Normalisierung: varchar vs int Identity
Ich frage mich nur, was hier die optimale Lösung ist.
Angenommen, ich habe eine normalisierte Datenbank. Der Primärschlüssel des gesamten Systems ist ein Varchar. Ich frage mich, ob ich diesen Varchar für die Normalisierung mit einem Int in Beziehung setzen oder ihn belassen soll. Es ist einfacher, als varchar abzureisen, aber es ist möglicherweise optimaler
Zum Beispiel kann ich haben
People
======================
name varchar(10)
DoB DateTime
Height int
Phone_Number
======================
name varchar(10)
number varchar(15)
Oder ich hätte es tun können
People
======================
id int Identity
name varchar(10)
DoB DateTime
Height int
Phone_Number
======================
id int
number varchar(15)
Natürlich können Sie auch mehrere andere Eins-zu-Viele-Beziehungen hinzufügen.
Was denkst du alle? Was ist besser und warum?