
2025 ავტორი: Lynn Donovan | [email protected]. ბოლოს შეცვლილი: 2025-01-22 17:29
ძირითადი გასაღებები ყოველთვის უნდა იყო უნიკალური, უცხო გასაღებები საჭიროა არაუნიკალური მნიშვნელობების დაშვება, თუ ცხრილი არის ერთი-მრავალზე ურთიერთობა. სავსებით კარგია ა უცხოური გასაღები როგორც მთავარი გასაღები თუ ცხრილი დაკავშირებულია ერთი-ერთ-ერთთან და არა ერთ-ერთ-მრავალთან ურთიერთობით.
ანალოგიურად, ისმის კითხვა, შეიძლება თუ არა პირველადი გასაღები იყოს უცხო გასაღები იმავე ცხრილში?
შექმნა ა უცხოური გასაღები თითქმის ისეთივე მარტივია, როგორც შექმნა ა მთავარი გასაღები , გარდა იმისა, რომ SQL Server აწესებს კიდევ რამდენიმე წესს უცხო გასაღებები . მაგალითად, უცხოური გასაღები უნდა მინიშნება ა მთავარი გასაღები ან უნიკალური შეზღუდვა, თუმცა ეს მითითება შეუძლია იყოს იგივე მაგიდა ან სხვაზე მაგიდა.
ასევე, რით განსხვავდება ძირითადი და უცხოური გასაღებები? ა პირველადი გასაღები არის სპეციალური გასაღები, რომელიც გამოიყენება ცხრილში ჩანაწერების ცალსახად იდენტიფიცირებისთვის, ხოლო ა უცხოური გასაღები გამოიყენება ორ ცხრილს შორის ურთიერთობის დასამყარებლად. ორივე სტრუქტურაში იდენტურია, მაგრამ თამაშობს განსხვავებული როლები მონაცემთა ბაზის რელაციურ სქემაში.
აქ, შეგიძლიათ გქონდეთ უცხოური გასაღები პირველადი გასაღების გარეშე?
დიახ. ჩვენ შეუძლია შექმენი უცხო გასაღების გარეშე მქონე Მთავარი გასაღები მშობლის მაგიდაზე. უმეტეს ჩვენგანს აქვს არასწორი წარმოდგენა, რომ ჩვენ შეუძლია არ შექმნა ა უცხოური გასაღები პირველადი გასაღების გარეშე მშობლის მაგიდაზე. ეს უნიკალური ID შეუძლია იყოს მთავარი გასაღები ან უნიკალური გასაღები.
შეიძლება თუ არა უცხო გასაღების დუბლიკატი?
განსხვავებით პირველადი გასაღებები , უცხო გასაღებს შეუძლია შეიცავს დუბლიკატი ღირებულებები. ასევე, კარგია, რომ ისინი შეიცავს NULL მნიშვნელობებს. ინდექსები არ იქმნება ავტომატურად უცხო გასაღებები ; თუმცა, როგორც DBA, თქვენ შეუძლია განსაზღვრეთ ისინი. ცხრილი ნებადართულია შეიცავდეს ერთზე მეტს უცხოური გასაღები.
გირჩევთ:
შეიძლება სვეტს ჰქონდეს მრავალი უცხო გასაღები?

თეორიულად, თქვენ არ შეგიძლიათ განახორციელოთ მრავალი უცხო გასაღები ერთ სვეტზე. ალტერნატიულად, შეგიძლიათ განახორციელოთ ეს პროცედურების გამოყენებით, სადაც ამოწმებთ შეყვანას, რომელიც არსებობს მრავალ ცხრილში და აკეთებთ საჭირო ოპერაციას
შეიძლება თუ არა ერთ ძირითად გასაღებს ჰქონდეს ორი უცხო გასაღები?

სავსებით კარგია, რომ გქონდეთ ორი უცხო გასაღების სვეტი, რომლებიც მიუთითებენ იმავე პირველადი გასაღების სვეტზე სხვადასხვა ცხრილში, რადგან თითოეული უცხო გასაღების მნიშვნელობა მიუთითებს განსხვავებულ ჩანაწერზე შესაბამის ცხრილში
შეიძლება უცხო გასაღები იყოს null Postgres?

INSERT INTO პროდუქტის ღირებულებებში (11, 'ჯოსთვის', 1); INSERT INTO პროდუქტის ღირებულებებში (22, 'ყველასთვის', NULL); სავსებით ლეგალურია, რომ გქონდეთ ნულოვანი უცხო გასაღების სვეტი
შეუძლია თუ არა უცხო გასაღების სხვა უცხო გასაღების მითითება?

1 პასუხი. უცხო კლავიშს შეუძლია მიმართოს ნებისმიერ ველს, რომელიც განსაზღვრულია როგორც უნიკალური. თუ ეს უნიკალური ველი თავად არის განსაზღვრული, როგორც უცხო გასაღები, არავითარი მნიშვნელობა არ აქვს. თუ ეს უნიკალური ველია, ის ასევე შეიძლება იყოს სხვა FK-ის სამიზნე
რა არის პირველადი გასაღების მეორადი გასაღები და უცხოური გასაღები?

საგარეო გასაღები: არის თუ არა ძირითადი გასაღები ერთი ცხრილი (ჯვარედინი მითითებით) მეორე ცხრილში. მეორადი (ან ალტერნატიული) გასაღები: არის ცხრილის ნებისმიერი ველი, რომელიც არ არის არჩეული ზემოთ მოცემული ორი ტიპისგან