Autor | Zpráva | ||
---|---|---|---|
hazi Profil * |
#1 · Zasláno: 2. 11. 2009, 22:14:41
Zdravim,
presel jsem v MySQL z enginu MyISAM na InnoDB kvuli cizim klicum. Mam ale problem s nasledujici veci - jakym zpusobem se do tohoto sloupce vkladaji data? Sloupec se odkazuje na ciselnik napriklad s akademickymi tituly. Kazdy titul ma svoje id, ktere se zobrazuje v zminenem cizim klici. Neni ale pohodlne vkladat do tohoto ciziho klice id titulu, to uzivatel nezna, chci vkladat ing., bc. atd pricemz ulozeno bude id titulu z ciselniku... Dekuju za rady |
||
AM_ Profil |
#2 · Zasláno: 2. 11. 2009, 22:50:17
Řešení jsou dvě:
1 - na straně aplikace (jsi na fóru o PHP, tak předpokládám, že se jedná o webovou aplikaci; mimochodem tento dotaz patřil spíš do tématu "databáze"): <select name="titul"> <option value="1">Bc</option> <option value="2">Mgr</option> </select> Takže uživatel vidí titul, ale backendu se už odešle ID. 2 - na straně databáze: INSERT INTO lidi (jmeno, titul) VALUES('Franta Vomacka', (SELECT id FROM tituly WHERE name='Mgr')) |
||
hazi Profil * |
#3 · Zasláno: 3. 11. 2009, 11:55:38
Ano, jedna se o web aplikaci :)
Tohle mi pomohlo, napada me ale jeste jedna otazka - mam tabulku lide (id, jmeno) a tabulku cizinci(id, clovek, zeme). clovek v tabulce cizinci je cizi klic s odkazem na tabulku lide, to proto, aby nedochazelo k redundanci, protoze ne u vsech lidi eviduji zemi. Jakym zpusobem ukladam v PHP zaznam cizince? Podle me to musi byt dva inserty v jednom dotazu, prvnim vlozim zaznam do tabulky lide, druhym do tabulky cizinci. Je to tak spravne? Nedela se to jinak? |
||
nightfish Profil |
#4 · Zasláno: 3. 11. 2009, 12:14:32
ve druhém dotazu potřebuješ ID z tabulky `lide`, takže jinak než přes dva dotazy to nejde, tvůj postup je v tomto ohledu správný
na druhou stranu si nejsem zcela jist, že toto uspořádání tabulek je úplně vhodné... v takto jednoduchém případě bych osobně volil tabulku `lide`(`id`, `jmeno`, `zeme`), přičemž výchozí hodnota u `zeme` bude NULL |
||
hazi Profil * |
#5 · Zasláno: 3. 11. 2009, 12:27:53
No, samozrejme jsem neuvadel celou strukturu databaze a tabulek, je tam daleko vic sloupcu, ktere jsou jen v tabulce cizinec, tudiz jsem navrhl tabulku lide jako vychozi, prunik toho, co bude i v ostatnich tabulkach a speciality jsou v dalsich tabulkach...
Nebo myslite, ze by bylo lepsi mit tabuek vic, bez referenci, pricemz v kazde z nich by byly sloupce jako jmeno, prijmeni, adresa ci kontakt? |
||
Časová prodleva: 14 let
|
0