Moim zrozumieniem jest to, że OneOnefield jest używany przez zaledwie 1 wiersz danych z Table2 (ulubione owoce) połączone z jednym rzędem danych w tabela1 Nazwa), a obstrukcja jest przeznaczona dla wielu wierszy danych w Tabela2 (modele samochodów) do 1 rzędu danych w Tabela1 (marka / producent).

Moje pytanie brzmi, co powinienem użyć, jeśli mam wiele tabel, ale tylko jeden wiersz danych z każdej tabeli, która łączy się z Tabela1 . Na przykład: Mam tabelę1 jako "samochody", moje inne stoły są "Informacje o ubezpieczeniu", "Informacje o samochodach", "Historia napraw". Czy powinienem używać oboru lub onetoone?

7
Wesley 24 sierpień 2012, 22:51

2 odpowiedzi

Najlepsza odpowiedź

Wystarczy zapytać siebie "może obiektowi mieć wiele obiektów B lub obiekt B wielu obiektów"?

Te relacje stołowe każdy może być inny:

  1. Samochód mógł mieć 1 lub wiele polis ubezpieczeniowych, a polisa ubezpieczeniowa ma zastosowanie tylko do jednego samochodu. Jeśli samochód może mieć tylko jeden, to może być jeden do jednego.
  2. Samochód może mieć wiele wierszy historii napraw, więc byłoby to klucz obcy w historii naprawy, z powrotem do samochodu jako zestaw.
  3. Informacje samochodowe są podobne do koncepcji UserProfile w Django. Jeśli jest to naprawdę wyjątkowe informacje, to również byłby jeden do jednego. Ale jeśli zdefiniujesz informacje o samochodach jako ogólny opis, który może zastosować do podobnych modeli samochodów, byłoby to klucz obcy w tabeli samochodu, aby odnosić się do informacji o samochodach
10
jdi 24 sierpień 2012, 19:59

Roundey oznacza, że odwołujesz się do elementu, który istnieje w innej tabeli. Onetoone jest typem oboru, w którym element tabeli1 i table2 jest wyjątkowo związany razem.

Twój ulubiony przykład owoców byłby onetomany. Ponieważ każda osoba ma wyjątkowe ulubione owoce, ale każdy owoc może mieć wielu ludzi, którzy wymieniają ten konkretny owoc jako ich ulubiony.

Związek Onteoone można wykonać za pomocą przykładu samochodu. Samochody

2
btstevens89 24 sierpień 2012, 19:06