Diskuze: Navrh databaze

Ostatní jazyky SQL SQL a databáze Navrh databaze

Avatar
g1ml1
Člen
Avatar
g1ml1:

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):

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
Nesnáším {}, proto se jim vyhýbám.
Avatar
Snorlax
Redaktor
Avatar
Snorlax:

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 | a@a.a | 1 | 84.111.20.14
2 | nick2 | heslo | b@b.b | 1 | 84.222.20.14
3 | nick3 | heslo | c@c.c | 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:

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
Redaktor
Avatar
Odpovídá na g1ml1
Kit:

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:

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
Redaktor
Avatar
Odpovídá na g1ml1
Kit:

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.