Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jak utworzyć bazę danych w acces 2007

Janekgt540 13 Maj 2012 00:09 3488 6
  • #1 13 Maj 2012 00:09
    Janekgt540
    Poziom 13  

    Witam, właśnie próbuję stworzyć bazę danych i mam pytanie jak to według was wygląda? Wiem ze szału nie ma ale byłbym wdzięczny jeśli byście wskazali co jest źle lub jak ta bazę ulepszyć.
    Już mam jeden błąd domyślam się że w relacjach ponieważ w formularzu danych nie mogę przejść wpisywania danych dla kolejnej osoby i wyskakuje: "nie można dodać ani zmienić rekordu ponieważ w tabeli klienci musi istnieć rekord pokrewny"

    0 6
  • #2 13 Maj 2012 09:20
    markonedj
    Poziom 22  

    1. Tabela Klienci jest w relacji jeden-wielu z tabelą dane. Czy zakładasz że jeden klient może mieć różne dane (typu adres, telefon..) ? Jeśli nie to proponowałbym połączyć te dwie tabele w jedną Klienci.
    2. Tabela Zlecenia klientów jest w relacji jeden-jeden z tabelą wykonawcy, czyli rozumiem że jeden wykonawca może realizować tylko jedno zlecenie tak ?
    3. Wybór nr telefonu jako klucz główny jest dość ciekawym wyborem.

    Ogólnie zakładając że odp. w p.1 jest nie, a w p. 2 tak, to powinno to wyglądać mniej więcej w ten sposób:

    Jak utworzyć bazę danych w acces 2007

    0
  • #3 13 Maj 2012 11:38
    Janekgt540
    Poziom 13  

    W zasadzie sam odpowiedziałeś sobie na te pytania, tak zgadza się jedno zlecenie dla jednego wykonawcy. Zabrałem się za poprawianie i zakładając ze klientID jest auto-numerowany, ID muszę zrobić liczbą jednak przy zapisywaniu wyskakuje ze klucz główny czyli ID nie może mieć wartości Null mimo ze zaznaczyłem ten wiersz wymagany a w wartości domyślnej wpisałem Not Null, co robię źle?

    0
  • #4 13 Maj 2012 11:46
    markonedj
    Poziom 22  

    Otóż nie do końca. Pole KlientID pełni rolę klucza obcego, więc nie jest autonumerowane. Przechowuje tylko wartość całkowitą klucza głównego (ID) z tabeli Klienci.

    Generalnie tabele powinny wyglądać tak:
    Klienci:
    - ID autonumerowanie, klucz główny, not null
    - Imie text, not null
    - Nazwisko text, not null
    - Pesel liczba, not null
    - Telefon liczba, not null
    - Miejscowosc text, not null
    - Ulica text, not null
    - KodPocztowy text, not null

    Zlecenia
    - ID autonumerowanie, klucz główny, not null
    - KlientID liczba, not null
    - Wartosc liczba, not null
    - DataWykonania data/godzina not null

    Wykonawcy
    - ID liczba, klucz główny not null
    - Imie text, not null
    - Nazwisko text, not null

    0
  • #5 13 Maj 2012 14:10
    Janekgt540
    Poziom 13  

    A wiec zmieniłem ta bazę danych ale bezsensu jest ID klienta bo trzeba ręcznie wpisywać, zrobiłem tak ponieważ w tabeli może być jedno auto-numerowanie i prawdopodobnie jest jakiś błąd w relacjach typu 1 do n lub 1 do 1 których nie mogę utworzyć, jak to poprawić?

    0
  • Pomocny post
    #6 13 Maj 2012 16:10
    markonedj
    Poziom 22  

    No, a w jaki sposób sobie to wyobrażałeś inaczej ? Na tym polega relacja jeden-wielu, że pole będące kluczem obcym przechowuje referencje do ID klienta. W normalnych programach ID klienta pobiera się do zmiennej i tą zmienną zapisuje w polu KlientID. Szybki przykład C#

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Tak to się realizuje w aplikacjach. Jeżeli dodajesz rekordy ręcznie to niestety musisz wartość KlientID wprowadzać ręcznie.

    0
  • #7 18 Maj 2012 16:05
    Janekgt540
    Poziom 13  

    Ok, dzięki wielkie za pomoc.

    0