Autor Zpráva
joe
Profil
Ahoj,

tak opět jsem narazil na drobnější problém. Jde mi o to, že v databázi budu mít tabulky, například:

- prezentace
- stránka
- komponenta

a u všech jejich záznamů budu chtít nastavit routu, která ale musí být unikátní.

Nesmělo by tedy nastat, že vložim do tabulky routa (typ, routa) řádky

<?php
prezentace | /example1
stránka | /example1 // tento řádek nesmí projít
komponenta | /example1/component
stránka | /example1/component // tento taky ne

Jde to řešit databázově?
Kajman
Profil
Jednou tabulkou rout, případně rovnou tabulkou všech objektů, kde budou společné vlastosti a specifické budou až v uvedených tabulkách.
joe
Profil
Kajman:
Společně mají teď jen tu routu, jinak nic. Určitě by bylo dobré počítat s tim, že budou mít více společných věcí.

Ale ať se snažím sebevíc, nejsem pořád schopný to navrhnout.

Vytvořím další tabulku se sloupci

Routa_id - umikatni sloupec

A další sloupec/sloupce by měly určit ten typ, k čemu tu routu přidávám, ale jak v relaci určim, že jeden sloupec může odkazovat na více různých tabulek (prezentace, stranka, komponenta, ...) podle toho, co to bude za typ?

Tak už mi to je asi jasné, otestuji kak nebudu na tel a napíšu, jak jsem to provedl.
joe
Profil
Je řešením mít tabulku routa (tu co zmiňuju v prvnim příspěvku) a pak další tabulku, například routa_objekt, která bude spojena relací 1:1 ke každé tabulce (entitě), co bude umožňovat routování?
Tori
Profil
joe:
Co je vlastně jednoznačný identifikátor pro routu - kombinace hodnot ze všech tří tabulek? (= pak by mohla odkazovat jen na šablonu, protože stránka i prezentace jsou dohledatelné podle ID šablony) Anebo může routa odkazovat např. pouze na prezentaci či stránku?
joe
Profil
Tori:
Momentálně to je ID (autoincrement), ale jinak to je routa sama o sobě.

Teď se to snažím nějak vstřebat :) a myslím si, že to tak nejde. Cílem je, aby prezentace, stránka a komponenta (případně v budoucnu dalšíy) mohly mít svou vlastní routu, ale zároveň aby platilo, že stejná routa nemůže být použitá pro jinou "routovatelnou entitu".

Je to aspoň trochu srozumitelné? :)
Tori
Profil
joe:
Myslela jsem to tak, že co se vlasntě na základě té konkrétní routy použije: Jestli se routa s ID 123 vztahuje ke kombinaci ID prezentace + ID stránky + ID šablony, anebo jestli se může vztahovat jen k ID prezentace (a stránka + šablona se určí nějak jinak, ne podle ID routy).
Možná to není až tak podstatné pro ten návrh, nevím. Ptala jsem se spíš proto, že mě zajímá, jak je to udělané.
joe
Profil
Tori:
Jedná se o ten druhý případ. (Ale teď jsem zase zjistil, že to není úplně nejlepší řešení.)
joe
Profil
Kajman:
Jak byla prosím myšlena ta tabulka všech objektů? Nevím jak by měla vypadat.
Našel jsem řešení, že by to šlo udělat přes trigger.

Tori:
Tak prezentaci jsem vyloučil, ta routu mít nebude, bude určovat jen doménu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: