Autor | Zpráva | ||
---|---|---|---|
Ivorius Profil |
#1 · Zasláno: 23. 10. 2008, 10:01:51
Přemýšlím nad jednou věcí. Jestli v databázi připravit jednu konfigurační tabulku která bude mít sloupec na rozlišení (např. DOPRAVA, PLATBY) nebo udělat raději více tabulek které budou přímo určené pro konkrétní věc - např. zmíněná DOPRAVA apod. Připomínám že v každé tabulce bude jen pár záznamů, ale něco mi říká že samostatné tabulky by byly lepší. Co si o tom myslíte?
|
||
Hugo Profil |
#2 · Zasláno: 23. 10. 2008, 10:05:40
Já mám většinou jednu tabulku, která má hodně sloupců a jeden řádek.
|
||
bohyn Profil |
#3 · Zasláno: 23. 10. 2008, 10:32:44
Pokud ti staci tabulka se 2 sloupeckama - promenna a hodnota - tak bych to dal do jedne tabulky.
napr.: doprava_1_nazev = "PPL" doprava_1_cena = 100 doprava_2_nazev = ... platby_1_neco = ... platby_2_neco = ... pak to muzes projit nejakym parserem a udelat z toho $cfg['doprava'][1]['nazev'] |
||
Hugo Profil |
#4 · Zasláno: 23. 10. 2008, 10:41:02
bohyn
To by byl dost problém, protože někdy je hodnota int, jindy string, atd. |
||
Ivorius Profil |
#5 · Zasláno: 23. 10. 2008, 10:48:47 · Upravil/a: Ivorius
Bude tam více sloupců - např. doprava zdarma od: ..., navíc také musím ty platby s dopravou nějakým způsobem spárovat (tzn. když vezme např. na PLATBA - dobírka, tak nabídnout DOPRAVA: česká pošta, ppl). Sakra, to ale zase abych udělal ještě propojovací tabulku co? Nebo ukládat id dopravy do jednoho sloupce u tabulky PLATBA a např. oddělit to pomocí ; ?
|
||
bohyn Profil |
#6 · Zasláno: 23. 10. 2008, 11:28:35
Hugo
„To by byl dost problém, protože někdy je hodnota int, jindy string, atd.“ CREATE TABLE IF NOT EXISTS `SetupList` ( `file` varchar(15) NOT NULL default '', `var` varchar(32) NOT NULL default '', `val` text, PRIMARY KEY (`file`,`var`) ) TYPE=MyISAM; Tahle databaze beha na DC++ serveru verlihub a nejaky problemy s tim nejsou hodnota se pretypuje na cislo kdyz je potreba. Nebo muzes pridat sloupecek na typ promeny a pretypovat hned pri nacitani konfigurace (file je skupina promenych) Ivorius „ Nebo ukládat id dopravy do jednoho sloupce u tabulky PLATBA a např. oddělit to pomocí ;“ propojovaci tabulka bude rychlejsi a jednodussi nebo jestli to udelas tak jak to navrhuju tak muzes mit doprava_1_dobirka = 1/0 a podle toho se rozhodnout jesti ji vytisknout nebo ne |
||
Hugo Profil |
#7 · Zasláno: 23. 10. 2008, 11:42:35
bohyn
To je sice pěkné, ale dost nepraktické. Zvlášť pokud potřebuješ nějakou hodnotu změnit. |
||
bohyn Profil |
#8 · Zasláno: 23. 10. 2008, 11:53:31
Hugo
„To je sice pěkné, ale dost nepraktické. Zvlášť pokud potřebuješ nějakou hodnotu změnit.“ a kde je problem? |
||
Hugo Profil |
#9 · Zasláno: 23. 10. 2008, 12:49:43
Problém ani ne, ale spíš komplikace. Pokud potřebuješ zvýšit hodnotu některých direktiv třeba o 2, tak to musíš nejdřív převést na číslo, pak přičíst a převést zpět na string. Mimoto je prasárna ukládat int jako string.
|
||
Ivorius Profil |
#10 · Zasláno: 23. 10. 2008, 13:20:27
Takže pokud bych to měl zhrnout, tak bude ideální vytvořit:
1) tabulku KONFIGURACE, kde na jednom řádku bude více sloupců (např. název webu, slogan, defaultní měna, email, .... - tedy prostě všechny tyhle konfigurační věci tak, abych je mohl zároveň vytáhnout jedním dotazem) 2) Tabulku DOPRAVA (id, název dopravy, cena dopravy, od kolika je doprava zdarma) 3) Tabulku PLATBY (id, název platby, doplňková cena) 4) Propojovací tabulka (id, id_platby, id_dopravy) ? |
||
Časová prodleva: 15 let
|
0