Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Autonumeracja a klucze obce
Kikert
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 15.09.2008

Ostrzeżenie: (0%)
-----


Małe pytanie - jeżeli dla klucza podstawowego z numerem użytkownika ustawię opcję 'Auto Incremental' to czy:

1. Numeracja będzie się zmieniać automatycznie przy różnych operacjach (np. usunięciu użytkownika), tak, że wartości kolejnych rekordów będą zawsze tworzyć ciąg liczb naturalnych (1,2,3,...)?

2. Czy przy takich zmianach klucze obce w innych tabelach również będą się odpowiednio zmieniać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Stosując on delete, czy on update, można sobie samemu krzywdy narobić... Także nie polecam.

Cytat
Mamy jakis produkt na stanie, dodajemy go do faktury, zostal zdjety z stanu ma teraz ilosc sztuk magazynowa 0, uwazamy ze juz jest nam nie potrzebny, wiec usuwamy go. BUM!
Z faktury znika nam produkt! Tadam! A później urzad skarbowy nas za jaja powiesi.
Cojak, jeśli tak używasz relacji to nic dziwnego ze ich nie polecasz (IMG:style_emoticons/default/winksmiley.jpg)
W tym przypadku na tabele faktura_produkt nalezy zalozyc klucz obcy na produkt z ondelete RESTRICT. Wowczas baza nie pozwoli na usunięcie produktu, który jest przypisany do jakiejs faktury. Relacje to bardzo fajny mechanizm i jak najbardziej nalezy go stosować.

Takie rozwiązanie jest tym bardziej wskazane, że daje nam zabezpieczenie, gdy jakiś "genialny" admin ominie aplikacje i jej logikę i zacznie grzebać bezpośrednio w bazie. Wówczas również gdy będzie chciał bezpośrednio w bazie usunąć produkt, to baza mu na to nie pozwoli, jeśli produkt będzie przypisany do jakiejś faktury
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 21:38