Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Proszę o uwagi do diagramu ER, Czy mogę mieć klucze obce o tych samych nazwach?
twojastara
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 25.11.2014

Ostrzeżenie: (10%)
X----


Czy mogę mieć klucze obce o tych samych nazwach?


Proszę o rzucenie okiem na diagram i uwagi. pierwszy raz taki diagram robię.



Ten post edytował twojastara 4.02.2015, 20:19:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Klient/Pracownik - zbędne dublowanie danych
Logowanie - bezsensowne, bo nic z tej tabeli nie wynika
Powinieneś zdublować dane w przypadku zamówionych produktów. O ile teoretycznie nazwa książki się nie zmienia, to dobrze jest mieć dane na podstawie których została wystawiona faktura np. w przypaku usunięcia produktów z BD.

To tak na szybko.

Klucze obce musza mieć unikalne nazwy w obrębie bazy.
Go to the top of the page
+Quote Post
twojastara
post
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 25.11.2014

Ostrzeżenie: (10%)
X----


Cytat(Pyton_000 @ 4.02.2015, 20:29:51 ) *
Logowanie - bezsensowne, bo nic z tej tabeli nie wynika

Logowanie, by w jednym miejscu mieć wszystkie loginy. Nie będę się upierac, że ma to większy sens.

Cytat(Pyton_000 @ 4.02.2015, 20:29:51 ) *
Powinieneś zdublować dane w przypadku zamówionych produktów.

Czyli np do tabeli faktura mogę wrzucić te dane?

Cytat(Pyton_000 @ 4.02.2015, 20:29:51 ) *
Klucze obce musza mieć unikalne nazwy w obrębie bazy.

a czy nie wystarczy w fragmencie
  1. CONSTRAINT `idLogowanie`
  2. FOREIGN KEY (`idLogowanie`)
  3. REFERENCES `Szobuk`.`Logowanie` (`idLogowanie`)

(zakładając, że powtarzającym się w bazie kluczem obcym jest `idLogowanie`) zmienić nazwę przy CONSTRAINT `idLogowanie`na inną? czy muszę zmienić w tabelach wszystkie powtarzające się nazwy pól FK.

Ten post edytował twojastara 4.02.2015, 21:43:31
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Cytat
Logowanie, by w jednym miejscu mieć wszystkie loginy. Nie będę się upierac, że ma to większy sens.

Po co, jak wywalisz tabele pracownik to i login nie potrzebne. Już 2 tabele mniej

Cytat
Czyli np do tabeli faktura mogę wrzucić te dane?

Nie, do zamówienie produkt bo to tam trzymasz dane o pozycjach faktury. Dane adresowe faktury masz już w innej tabeli, co może w sumie zostać, ale też nie musi. Chyba że Dane_sprzedawcy użyjesz również jako dane do FV jak i dane do Wysyłki (razem 2 adresy)

Ad FK, to sama nazwa Klucza (constraint) musi być unikalna. Nazwy kluczy w tabelach nie muszą być unikalne.
Go to the top of the page
+Quote Post
twojastara
post
Post #5





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 25.11.2014

Ostrzeżenie: (10%)
X----


Wolę się się upewnić.

Dublowanie danych polega na tym, że w tabeli z dublowanymi danymi wstawiam pola, oznaczam je jako FK i podaję REFERENCES `tabelaRodzic`(poleDublowane). I by nie zmieniały swoich wartości w przyszłości podaję
  1. ON DELETE NO ACTION
  2. ON UPDATE NO ACTION


Bo ja sobie wcześniej po prostu wpisałem w tabelę`Zamowienie_Produkt`powtórzone pola z tabeli `Ksiazka`, bez oznaczenia ich jak FK.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Nie, dublowanie to dublowanie czyli masz stworzyć pole np. Nazwa_ksiazki i wpisać tam dokładnie to samo co jest nazwą książki. Żadnych kluczy itp. Bo co Ci da jak dasz klucze FK, nawet jak dasz No Action to jak wywalisz oryginał z tabeli książki to już nie odzyskasz tytułu na zamówieniu.
Go to the top of the page
+Quote Post
twojastara
post
Post #7





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 25.11.2014

Ostrzeżenie: (10%)
X----


Dobra, już jasne. Dzięki. (Strasznie głupie to pytanie poprzednie, teraz aż się dziwie, że mnie zrozumiałeś. Przez chwilę nie ogarniałem do czego służy tabela `Zamowienie_Produkt`)

Ten post edytował twojastara 4.02.2015, 23:22:29
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 09:09