Ahoana no Hanampiana ireo Foreign Keys ao amin'ny Microsoft SQL Server

Ny iray amin'ireo foto-kevitra manan-danja indrindra ao amin'ny tahiry dia mamorona fifandraisana eo amin'ny latabatra tahiry. Ireo fifandraisana ireo dia manome fepetra ahafahana mampifandray ireo tahiry voaaro amin'ny tabilao marobe ary ny fikarakarana azy amin'ny fomba mahomby. Mba hamoronana fifandraisana misy eo amin'ny latabatra roa, dia tsy maintsy mamaritra ny fanalahidin'ny vahiny iray amin'ny tabilao iray izay manondro tsanganana ao amin'ny latabatra hafa.

Tabataba Database sy Fifandraisana

Mety efa fantatrao fa tabilao tsotra fotsiny ny tahiry, toy ny efa azonao ampiasaina amin'ny programa fitehirizam- bokatra toy ny Microsoft Excel. Raha ny marina dia afaka manova ny takelaka Excel ho an'ny daty iray. Na aiza na aiza misy ny tahiry dia avy amin'ny spreadsheets, na izany aza dia ny fananganana fifandraisana matanjaka eo amin'ny latabatra.

Eritrereto, ohatra, ny tahirin-tserasera iray ampiasain'ny orinasa hanaraka ny fampahalalam-baovao. Io tahirin-kevitra io dia mety manana latabatra atao hoe Employee izay ahitana ireto fampahalalana manaraka ireto ho an'ny mpikambana tsirairay ao amin'ny orinasa:

Amin'ity ohatra ity, ny ID mpiara-miasa dia singa tokana voatokana izay voatendry ho an'ny mpiasa tsirairay rehefa ampidirina ao amin'ny daty. Ny ID ny toerana dia asan'ny code asa ampiasaina hanondroana ny toeran'ny mpiasa ao amin'ny orinasa. Ao anatin'ity tetikasa ity, ny mpiasa iray dia mety manana toerana iray ihany, fa ny mpiasa (na tsia) afaka mameno ny toerana tsirairay. Ohatra, mety manana mpiasa an-jatony manana toerana "Cashier" ianao.

Ny tahirin-kevitra dia mety ahitana tabilao antsoina hoe Positions miaraka amin'ny fanazavana fanampiny momba ny toerana tsirairay:

Ny sehatra Position ID ao amin'ity latabatra ity dia mitovy amin'ny sehatry ny ID Employee ao amin'ny tabilan'ny Employees - izy io dia singa miavaka izay noforonina rehefa ampidirina amina tahiry ny toerana.

Raha handeha hanaisotra ny lisitry ny mpiasa avy amin'ny tahiry isika, dia mety ny fangatahana ny anaran'ny olona tsirairay sy ny lohateniny. Na izany aza, ity tahirin-kevitra ity dia napetraka amin'ny tabilao fandraketana maromaro, ka azo atao amin'ny alalan'ny fampiasana fangatahana JOIN izay mitaky fifandraisana misy eo amin'ny latabatra.

Rehefa mijery ny rafitry ny latabatra ianao dia mety ho hita mazava tsara ny saha mamaritra ny fifandraisana - ny sehatra Position ID. Ny mpiasan'ny tsirairay dia afaka manana toerana tokana ary ny toetoetrany dia voamarika amin'ny fampidirana ny ID misy avy amin'ny fidirana mifanaraka amin'ny tabilao Positions. Ankoatra ny fanalahidy fototra ho an'ny latabatra Positions, amin'ity ohatra ity, ny sehatra Position ID dia singa vahiny avy amin'ny tabilan'ny mpiasa ho an'ny tabilao Positions. Ny tahiry dia afaka mampiasa io sehatra io mba hampifanarahana ny fampahalalana avy amin'ny tabilao marobe ary hiantoka fa ny fanovana na ny fanampiana amin'ny database dia manohy hampihatra ny tsy fisian'ny referans .

Rehefa voamarikao ny fanalahidin'ny vahiny dia afaka mandroso ianao ary misintona ny fampahalalana tadiavina ao amin'ny datineto amin'ny alàlan'ity fangatahana manaraka ity:

SELECT Voalohany nomena, LastName, Lohateny FROM Employees INNER JOIN Positions ON Employees.PositionID = Positions.PositionID

Mamorona Foreign Keys amin'ny SQL Server

Ny teknika, tsy mila mamaritra ny fifandraisana mazava ianao fa afaka manatanteraka fanontaniana tahaka ilay voalaza etsy ambony. Na izany aza, raha manazava mazava tsara ny fifandraisana amin'ny fampiasana fanerena ankolaka vahiny ianao, dia afaka manao asa fitadiavam-bola ny banky:

Ity ny fomba hamoronana ny fanalahidin'ny vahiny amin'ny SQL Server:

ALTER TABLE Employees ADD FOREIGN KEY (PositionID) REFERENCES Position (PositionID)

Azonao atao ihany koa ny mamorona ny fanalahidin'ny vahiny rehefa mamorona latabatra ianao amin'ny fampidirana ny tsipelina:

FIFANEKENA FIFANEKENA FIFANEKENA Positions (PositionID)

Ho any amin'ny faran'ny famaritana ny tsipika ho an'ny tsanganana fanalahidy vahiny.