Pomoc w utworzeniu prostej bazy danych

0

Witam wszystkich.
To mój pierwszy post więc proszę o wyrozumiałość.
Potrzebuję stworzyć prostą bazę danych do której będą wprowadzane następujące dane, jest to rejestr umów:

  • Lp
  • Nr umowy
  • Data zawarcia umowy
  • Kontrahent (dane firmy)
  • Przedmiot umowy
  • Data realizacji do dnia
  • Wartość przedmiotu umowy (zł)
  • Nazwa Wydziału - tutaj wybór z rozwijanej listy (np. ORG, BOS, PEZ, GN, GK)

Potrzebuje to wykonać w Microsoft SQL Server

Proszę o pomoc w rozrysowaniu tabel i ich połaczenia.
W załączniku rozrysowane tabele w access ale wydaje mi się że jest źle :(Rejestr umów.jpg

Z góry bardzo dziękuję.

0

Po pierwsze to masz na każde pole wydzieloną tabelę. Why ? Odróżniasz jedno od drugiego?
Wobec powyższego sądzę, ze podstawy teoretyczne masz zielone jak szczypiorek - co zyskasz, jak kupisz rozwiązanie? Odstrzał przy pierwszym pytaniu kontrolnym

Tabel na oko masz mieć ok trzech:
Umowa, Kontrahent i ten słownik Wydziałów do wybierania

0
ZrobieDobrze napisał(a):

Po pierwsze to masz na każde pole wydzieloną tabelę. Why ? Odróżniasz jedno od drugiego?
Wobec powyższego sądzę, ze podstawy teoretyczne masz zielone jak szczypiorek - co zyskasz, jak kupisz rozwiązanie? Odstrzał przy pierwszym pytaniu kontrolnym

Tabel na oko masz mieć ok trzech:
Umowa, Kontrahent i ten słownik Wydziałów do wybierania

Czy tabel wystarczy tylko tyle??Rejestr umów1.jpg

0
Zorro8004 napisał(a):
ZrobieDobrze napisał(a):

Po pierwsze to masz na każde pole wydzieloną tabelę. Why ? Odróżniasz jedno od drugiego?
Wobec powyższego sądzę, ze podstawy teoretyczne masz zielone jak szczypiorek - co zyskasz, jak kupisz rozwiązanie? Odstrzał przy pierwszym pytaniu kontrolnym

Tabel na oko masz mieć ok trzech:
Umowa, Kontrahent i ten słownik Wydziałów do wybierania

Czy tabel wystarczy tylko tyle??![Rejestr umów1.jpg](https://4programmers.net/uploads/99449/whTrgdopRfslhbkFs9HqousJixEg89YD6RR34YKb.jpg

Zorro8004 napisał(a):
ZrobieDobrze napisał(a):

Po pierwsze to masz na każde pole wydzieloną tabelę. Why ? Odróżniasz jedno od drugiego?
Wobec powyższego sądzę, ze podstawy teoretyczne masz zielone jak szczypiorek - co zyskasz, jak kupisz rozwiązanie? Odstrzał przy pierwszym pytaniu kontrolnym

Tabel na oko masz mieć ok trzech:
Umowa, Kontrahent i ten słownik Wydziałów do wybierania

Czy tabel wystarczy tylko tyle??Rejestr umów1.jpg

Nie wiem.
Zostawić tylko: Nazwa kontrhenta i Nazwa wydziału??
I czy połączenia między tabelami są ok?Rejestr umów1.jpg

2

w rejestrze umów powinieneś trzymać identyfikatory wydziału i kontrahenta, jako klucze obce. Nie wiem co tam masz teraz, ale zmień nazwy na np. idKontrahent i idWydzial, bo później sam się pogubisz przy wykonywaniu zapytań.

np trochę mylące bezie:

select
  * 
 from 
   Rejestr_umów u
   inner join Nazwa_kontrahenta k on k.identyfikator = u.[Nazwa kontrahenta]
   inner join Nazwa_wydziału u on u.indentyfikator = u.[Nazwa Wydziału]

Przy okazji wywal spacje i polskie znaki z nazw kolumn i tabel.
sama nazwa_kontrahnta jest słaba bo jak dojdą ci kolejne pola w tej tabeli to nazwa przestanie być aktualna, może zwyczajnie Kontrahent

1

Porządkowanie bazy zaczął bym od nazewnictwa tabel.
Masz trzy tabele które można prosto i logicznie nazwać : umowy, kontrahenci, wydziały . I podpisuję się pod komentarzem @Panczo o nazewnictwie pól w tabelach i kluczach obcych

2

@Panczo: +1

@grzegorz_so: +1

@Zorro8004:

Męczysz się z tym nazwami, być może dlatego, ze przykładasz złe patrzenie. Tak jakbyś w pocie czoła chciał wynieść do drugiej tabeli akurat jedynie "nazwę kontrahenta".

A masz myśleć o (całym) "kontrahencie", w którym między innymi jest i pole "nazwa" (a nie nazwa_kontrahenta), ma miasto, ulicę, numer domu itd.
Obiektowo, jeśli to ci coś mówi. kontrahent.nazwa, kontrahent.ulica itd

Tak więc bardziej pełne, bardziej profesjonalne myślenie o pełnym Kontrahencie akurat jest łatwiejsze, aby nie strzelić byka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1