Autor Zpráva
Adrifinel
Profil
Takže máme formulář, kde jsou vedle sebe dvě políčka.
V prvním zadáváme číselnou hodnotu, druhý funguje jako select, kdy vybíráme z možností.
Ve výsledku máme třeba 40 "obrázek1".

Jde udělat, aby se to do db zapsalo jako 40 obrazek1.png v rámci jednoho sloupečku v té tabulce?

Jestli ano, tak nějaký nápad jak by to pole pro ten zápis.
juriad
Profil
I kdyby to šlo, tak to nedělej. Některé časteji řešené dotazy pro MySQL - FAQ » Více hodnot ve sloupci
Adrifinel
Profil
A počítá se jako sdílené pole, když mám dano ve struktuře db, že je tam výchozí obrázek a k tomu chci přidat číslo?
juriad
Profil
Hodnota každého sloupečku by měla být nedělitelná (což dvojice obrázek -- číslo není).
Když s těmi daty budeš později pracovat, nijak jednoduše by ses už k samotnému obrázku nebo samotnému číslu nedostala.

Neboj se hodně tabulek a tabulek s hodně sloupečky; databáze to zvládne. Optimalizace, že nějaké údaje dáš dohromady za to nestojí.


Je to stejný případ jako uložení jména a příjmení do stejného sloupce. To je hned na první pohled blbost, za předpokladu, že jména a příjmení uživatel vyplňuje odděleně.
Musela bys pak nějak podle mezery určit, kde je hranice mezi jménem a příjmením (což nezní složitě, ale docela je).
Adrifinel
Profil
Já teď momentálně řeším tohle:

Chci podstatě propojovat řádky/buňky tabulek spolu navzájem. Nějak mi nepříjde moc efektivní mít v db řekneme, že 6 tabulek po dvou hodnotách. Bylo by fajn, kdyby to šlo v rámci dvou tabulek. Hlavně by to mělo spolu vypisovat pak ve výsledku uživateli.

Cílem je vytvořit a následovně zobrazit výpis, kdy se vám do první tabulky zapíše číselná hodnota a z druhé k ní přiřazujete hodnotu obrázek. Takže máte řekneme 20 auto.png.

Jako první řeším jak vůbec pojmenovat ty názvy polí.

Jestli jako, že první tabulka bude: penize a v druhé mince nebo, jestli tu mám vše propojovat s id_penize...


Takže mám první tabulku. kde je víceméně:

id
exp
....

a druhou, kde nevím jak to vlastně pojmenovat...

id
id_odmena
mince
juriad
Profil
Adrifinel:
Ono by docela pomohlo, kdyby ses trochu rozpovídala o aplikaci, kterou vytváříš.

Vůbec se neboj spousty malých tabulek. Často se používají takzvané číselníky; napřiklad tabulka, která obsahuje dva soupce id_kraje a název_kraje. Nebo číselník DPH: id_dph, název_sazby, hodnota_dhp s dvěma řádkami (1, snížená, 15), (2, základní, 21).
Jako pravidlo, kdy je třeba data vyčlenit do zvláštní tabulky, můžeš použít úvahu. Když budu chtít změnit nějakou hodnotu (třeba sazbu dph, název kraje), na kolika místech se změna musí provést? Pokud na více než jednom (jedna jediná hodnota v jedné jediné řádce), zavání to špatným návrhem.

Terminologická: na pojem pole v souvislosti s databázemi úplně zapomeň. O částech tabulky se mnuví jako o sloupečcích či atributech. Nic jako pole neexistuje.


Pokud bys chtěla databázi měn s obrázky mincí/bankovek, tak nejspíše něco jako:
měna (id, název, zkratka): (1, 'koruna', 'CZK'), (2, 'euro', 'EUR'), ...
stát (id, název): (1, 'česká republika'), (2, 'slovensko'), (3, 'rakousko'), ...
měna_ve_státě (měna_id, stát_id, doba_od, doba_do): (1, 1, 1993, NULL), (2, 2, 2009, NULL), (2, 3, ..., NULL), ...
typ_platidla(id, typ): (1, 'mince'), (2, 'bankovka')
platidlo (měna_id, typ_platidla_id, hodnota, doba_od, doba_do, název_souboru_fotky): tady budeš simulovat třeba papírové dvacetikoruny, padesátníky ale i současné kovové padesátikoruny
Adrifinel
Profil
No dělám podstatě něco jako DMO "WoWhead".

Jedná se o vytvoření db pro hráče, kde si budou moci najít příšlušný úkol, přičemž ho tam mají jak originále, tak i přeložený.

No a já řeším tu část odměny za provedení toho úkolu. Kdy by se ti mělo ukázat kolik dostaneš zkušeností, jaký předměty. Problém je v tom, že ty zkušenosti a ty předměty jsou promněné. Ty nedostaneš vždy stejnou odměnu, ale pokaždé jinou. A uživatel, který ty úkoly bude zadávat pomocí formuláře, by měl mít na výběr to, že zadá počet kusů a přiřadí k tomu odpovídající obrázek.

Takže by to teoreticky šlo v rámci jedné tabulky?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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