ďťż
 
Normalizacja i powtarzalnosc danych ďťż
 
Normalizacja i powtarzalnosc danych
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Normalizacja i powtarzalnosc danych



jh - 13-01-2007 00:00
Normalizacja i powtarzalnosc danych
  Przede wszystkim proszę o wyrozumiałość - jestem samoukiem ;)

Zgodnie z zasadami staram się, żeby nie powtarzać tych samych danych w
różnych tabelach, ale mam dylemat, co zrobić takim przypadkiem. Upraszczam
opis tabel:

1. Tabela ABONENCI z użytkownikami typu dane osobowe, klucz primary na polu
A_ID

2. Tabela z telefonami (numerami) służbowymi i prywatnymi TELEFONY, klucz po
polu z numerem telefonu (typ znakowy, długość 9) T_NUMER

3. Tabela z bilingami od operatora FAKTURY - zawiera numer faktury, kwota do
zapłaty z rozbiciem na abonament, połączenia, okres rozliczeniowy i sam
dokument (wrzucony jako BLOB), klucz po polu znakowym z numerem faktury
FV_NUMER

4. Tabela z rozliczeniami RAPORTY - sparsowany dokument faktury, który
zawiera numer faktury, numer telefonu, koszty połączeń abonamentu,
informację o przekroczonym limicie kosztów dla danego użytkownika itd. Klucz
po dwóch polach FV_NUMER i T_NUMER - numer faktury i numer telefonu, klucze
zewnętrzne do tabeli FAKTURY i tabeli TELEFONY.

Generalnie proste i banalne. Jedyny problem to powiązanie rozliczeń z
użytkownikami telefonów. Teoretycznie też banał, rzecz w tym, że te telefony
dosyć często są zmieniane lub zamieniane między użytkownikami - jest spora
rotacja użytkowników (praktykanci itp.) Zatem powiązanie na stałe z tabelą
użytkownicy nie sprawdzi się. No i teraz pytanie: czy lepiej jest do tabeli
rozliczeń skopiować dane użytkownika - na wypadek zmiany właściciela
telefonu w przyszłym miesiącu, czy lepiej utworzyć kolejną tabelę, która
będzie przechowywać informację, kto w danym okresie rozliczeniowym był
właścicielem telefonu? A może inny sposób?Jak to powinno być 'po Bożemu'? ;)

Jacek





Mariusz c - 13-01-2007 00:01

 
> rozliczeń skopiować dane użytkownika - na wypadek zmiany właściciela
> telefonu w przyszłym miesiącu, czy lepiej utworzyć kolejną tabelę, która
> będzie przechowywać informację, kto w danym okresie rozliczeniowym był
> właścicielem telefonu? A może inny sposób?Jak to powinno być 'po
Bożemu'? ;)

Jak się robi coś z telefonami, to wydaje się, że identyfikacja po numerach
telefonicznych jest pewna i najlepsza.
Jednak tak nie jest, a Twój przypadek najlepiej to pokazuje. Doświadczyła go
zresztą równbiez TP...
Trzeba, niestety, założyć inny klucz, który nie będzie zmieniał sie po
rotacjach telefonów firmie. Po prostu musi to być jakoś identyfikowane po
użytkowniku np.: imie_nazwisko, nr_usera.
Opóźnienie w rozdzieleniu Nesotrady od telefonu w TP wynikło m.in. z tego,
że część baz TP miała identyfikacje po numerze telefonu...
Mariusz

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/




DIUK - 18-01-2007 00:01

  Jeżeli przypisanie telefonu (egzemplarza/stacji abonenckiej) do abonenta
jest zmienne w czasie, musisz stworzyć tabelę powiązań (wiele do wielu)
użytkowników z telefonami z zakresem dat obowiązywania:
- id_abonenta
- id_telefonu
- posiada_od
- posiada_do
W tabeli z telefonami lepiej dać id_telefonu jako identyfikator wewnętrzny,
niezwiązany z numerem (numery wszak się zmieniają).

pozdrawiam
Diuk
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= =?iso-8859-2?Q?=5BMySQL=5D_Wy=B6wietlenie_wszystkich_rekordow _zawierajacy?==?iso-8859-2?Q?ch_duplikat_a__moze_inna_struktura_bazy_danych ?= Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8 [laik]Jak =?ISO-8859-2?Q?stworzy=E6/zaczac_tworzyc__ma=B3=B1?==?ISO-8859-2?Q?__baz=EA_danych_na_potrzeby_www=3F?= [mysql] przenoszenie danych =?ISO-8859-2?Q?mi=EAdzy_tabelami_?==?ISO-8859-2?Q?w_r=F3=BFnych_bazach?= Ksiazka - "Podstawowy =?ISO-8859-2?Q?wyk=B3ad_z_system=F3w_?==?ISO-8859-2?Q?baz_danych=22?= Zrywanie =?ISO-8859-2?Q?po=B3aczen_z_baza_danych_-_pos?==?ISO-8859-2?Q?tgresql_=3C-=3E_odbc?= Połączenie bazy danych z wykonaniem polaczenia telefonicznego [mssql] insert do tabeli na podstawie danych z innej tabeli [oracle] Baza danych do kursy Introduction to Oracle9i:PL/SQL ? Skąd ją pobrać ?
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • red-hacjenda.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com