Sprawa z poprawnym zapisem danych

0

Witam,

Wyjaśnię na czym polega problem. Mam cztery tabele: czesci, typ_czesci, model_czesci i producent_czesci.
Schemat tabel wygląda tak:
tabela - typ_czesci:
typ_id (klucz główny),
nazwa_typu;

tabela - model_czesci:
model_id (klucz główny),
nazwa_modelu;

tabela - producent_czesci:
producent_id (klucz głowny),
nazwa_producenta;

tabela - czesci:
czesci_id (klucz główny),
typ_id (klucz obcy),
model_id (klucz obcy),
producent_id (klucz obcy).

Pytanie brzmi: jak zapisywać dane aby uniknąć dublowania danych. Np.,


| czesci_id | typ_id | model_id | producent_id|

| 1 | 1 | 1 | 1 |

| 2 | 1 | 1 | 1 |

| 3 | 2 | 2 | 1 |

| 4 | 2 | 2 | 1 |

i tak dalej. Myślałem żeby jakiś warunków używać ale nie mam pomysłu. Męczę się z tym od rana i nic mi nie wychodzi. Może robię coś źle, może nie mam na to pomysłu. Samo zapisywanie działa i tylko z tym jest kłopot. Bardzo Was proszę o pomoc.

Wielkie dzięki z góry i pozdrowionka

Krzysiek

2

create unique index on czesci(typ_id,model_id,producent_id)

0

Dziękuję pięknie. Zapomniałem o takiej prostej rzeczy. Nie nadałem unikalności kolumnom.

0

Mam jeszcze jedno pytanie: jak ustawić unikalność pozostałych tabel->kolumn? Bo teraz części są unikatowe i nie można dopisać dubli, ale do pozostałych można dopisywać duble. Próbowałem ustawiać na kilka sposobów ale nie działa. Ustawiałem tak:
typ_czesci->typ_id na unique
model_czesci->model_id na unique
producent_czesci->producent_id na unique

i oczywiście: czesci->typ_id na unique
->model_id na unique
->producent_id na unique.

Próbowałem różnych kombinacji. I albo działa jedno albo drugie. Co ustawiam nie tak?

Jeśli możesz to podpowiedz.
Jeszcze raz dziękuję za poświęcony czas:)

Krzysiek

0

We wszystkich unique na nazwa_*

0

Czyli: create unique index on czesci(typ_,model_,producent_*) ? A co z tabelami czesci_typ, czesci_model, czesci_producent? Też jakoś ustawić czy usunąć unique? Napisz jak to mam wpisać w konsoli.

Dzięki:)

1

create unique index on typ_czesci(nazwa_typu);
create unique index on model_czesci(nazwa_modelu);
create unique index on producent_czesci(nazwa_producenta);

0

No teraz świetnie wszystko działa:) Dziękuję Marcinie.

Pozdrowionka

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