Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
g1ml1
Člen
Avatar
g1ml1:22.10.2013 22:19

Zdravim,
snazim se navrhnou databazi pro dopravni informace a potreboval bych poradit.
Mam dopravni informaci, ktera muze byt tri typu. Napadlo me, ze udelam 3 tybulky pro kazdy typ jednu, ale ty tabulky by meli par atributu stejnych. Nebo to mit v jedne tabulce? Jde mi o to, ze kdyby to byla jedna tabulka a potreboval bych ty informace selektovat podle typu, tak to bude celkem narocna operace nez kdybych primo vedel do jake tabulky sahnout, co myslite?
Dale by me zajimalo jestli ma smysl delat ciselnik na ten typ(v pripade jedne tabulky), ktery by mel jen 3 zaznamy.

 
Odpovědět
22.10.2013 22:19
Avatar
Odpovídá na g1ml1
Michal Žůrek - misaz:22.10.2013 22:26

nevim o co přesně jde, ale zkusil bych pouvažovaný o sloupci typ, který bude datového typu enum.

 
Nahoru Odpovědět
22.10.2013 22:26
Avatar
Snorlax
Tvůrce
Avatar
Snorlax:22.10.2013 22:40

hele pokud to chápu dobře tak navrhnou by to šlo takhle (snad se v tom zorientuješ)
informace

  • id_informace
  • typ_dopravy_id
  • text
  • nějaký
  • další
  • sloupce

typ_dopravy

  • id_typ_dopravy
  • nějaký
  • další
  • sloupce

prostě pokud máš nějaký informace opakující se tak pro ně vytvoř tabulku a bak tam jen dej sloupec kde budeš mít jen ID toho zápisu z jiné tabulky
př.:

mám tbl user
id_user | nick | heslo | mail | narodnost_id | ip
1 | nick1 | heslo | [email protected] | 1 | 84.111.20.14
2 | nick2 | heslo | [email protected] | 1 | 84.222.20.14
3 | nick3 | heslo | [email protected] | 2 | 84.333.20.14

a tbl narodnost

id_narodnost | nazev
1 | česká
2 | Německá

id_narodnost je narodnost_id (já to id dávám na začítek nebo nakonec, tím ihned poznám zda je to "odkaz" na tu informaci (na konci) nebo to ID tý informace(na začátku))

už to chápeš? jednoduše řečeno zkus eliminovat aby se ti data opakovala...

EDIT: zprávy nezobrazuje více mezer, tak doufám že si budeš schopen tu tabulku představit... ať žije trim nebo co to ty mezery v php dělá :D

Editováno 22.10.2013 22:41
Nahoru Odpovědět
22.10.2013 22:40
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
g1ml1
Člen
Avatar
Odpovídá na Snorlax
g1ml1:22.10.2013 22:56

Ja to chapu, jde mi spis o to, jestli udelat ty 3 tabulky, cimz mi odpdadne ten sloupec typ, nebo to nechat vsechno v jedne a ten typ udelat bud ciselnikem, jak mas tu narodnost nebo pouzit ten enum, jak radi misaz....
Dalsi veci jako nejake zpravy a lokalizace budou v jinych tabulkach a v te hlavni pak bude cizi klic na ne.

 
Nahoru Odpovědět
22.10.2013 22:56
Avatar
Kit
Tvůrce
Avatar
Odpovídá na g1ml1
Kit:22.10.2013 23:06

Měly by ty 3 tabulky nějakou vazbu mezi sebou? Pokud ano, tak bych to určitě nechal v samostatných tabulkách, jinak se ti z toho stane EAV.

Nahoru Odpovědět
22.10.2013 23:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
g1ml1
Člen
Avatar
Odpovídá na Kit
g1ml1:22.10.2013 23:10

Mezi sebou by vazby nemely, jen by treba mely cizi klic z jednoho ciselniku nebo napr. z tabulky "Zprava".

 
Nahoru Odpovědět
22.10.2013 23:10
Avatar
Kit
Tvůrce
Avatar
Odpovídá na g1ml1
Kit:22.10.2013 23:25

V tom případě by mohlo být zajímavé vytvořit čtvrtou tabulku se společnými atributy jako centrální a zmíněné 3 tabulky na ni navázat 1:1.

Možná by stačila i jediná tabulka, ve které by byly všechny sloupce, z nichž některé by mohly být nepovinné.

Nahoru Odpovědět
22.10.2013 23:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.