Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klika różnych tabel i klucze obce
ciastek1001
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.04.2019

Ostrzeżenie: (0%)
-----


Witam, mam takie pytanko (IMG:style_emoticons/default/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ę (IMG:style_emoticons/default/smile.gif)
Dzięki z góry za odpowiedzi (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 14:16