Witam, mam takie pytanko wink.gif
Przykładowo:
Mysql:
Mamy 3 tabele: documents1, documents2, documents3 (to trzy różne tabele, bo prawie wszystkie kolumny są różne).
Następnie mamy kolejną tabele np. files, która zawiera kolumny, mogące być puste, z kluczami do tych dokumentów, czyli document1_id, document2_id, document3_id.
I to tylko przykładowo są to 3 tabele, ale możliwe, że w przyszłości zostaną dodane jeszcze jakieś tabele.

Pytanie pierwsze: czy to dobry sposób na dodawanie kluczy obcych? Do tabeli files trzeba będzie po prostu dodawać kolejne kolumny _id ?

W klasach po stronie php:

Document1/2/3 implementują interfejs z metodą, która zwraca nazwę kolumny klucza obcego, np iDoc.

Kod
interface iDoc
{
getColumnName();
}


Klasa File ma gettery i settery np:

Kod
getDocument1(){
$this->document1 = Document1::findById($this->document1_id)
}

itd.

oraz metode statyczną
Kod
findByDoc(iDoc document)
{
//no i tu zapytanie
WHERE $document->getColumnName()=$document->id
}


Pytanie 2: Czy to jest właściwe pobieranie plików przez tą kolumnę? Czy jest inna, lepsza metoda?

Pytanie 3: Jak teraz pobrać dokument z klasy plik?
Bo oczywiście można to zrobić jakąś metodą i sprawdzać if'ami:
Kod
getDoc(){
if($this->document1){
return $this->document1;
}else {} //itd
}

ale przy dochodzeniu tabel będzie trzeba tą funkcję przerabiać. Jaka jest lepsza droga?

Może pytania łatwe dla tych zaawansowanych, ale jestem samoukiem i chciałbym się dowiedzieć jak to wygląda poprawnie, a nie żeby działało i jak mi się wydaję smile.gif
Dzięki z góry za odpowiedzi wink.gif