Jakou strukturu tabulek pro el. součástky – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jakou strukturu tabulek pro el. součástky – MySQL – Fórum – Programujte.comJakou strukturu tabulek pro el. součástky – MySQL – Fórum – Programujte.com

 

Fano
~ Anonymní uživatel
2 příspěvky
28. 2. 2016   #1
-
0
-

Zdravím,

poradíte mi prosím jak vytvořit nejlepší strukturu pro databázi skladových položek (elektronických součástek), které mají rozdílné vlastnosti a tudíž i sloupce v tabulce. Každá součástka má obecné vlastnosti jako napětí výkon hodnota a cena. Pak je ale každá součástka v nějaké skupině součástek jako "Rezistory" a podle této skupiny by měla mít rozšířené vlastnosti. Přiložený obrázek vám řekne víc. 

Připojen obrázek.

Jde mi o to jak vytvářet tabulky součástek. Zda by ty rozšířené vlastnosti měli být ve speciální tabulce té dané skupiny a spárovat tyto tabulky klíči. Nebo bude jen jedna tabulka která bude obsahovat vlastnosti všech skupin a budou se vyplňovat pouze ty související s danou skupinou? Tím ale bude spoustu sloupců, které budou nevyplněné.

Díky za rady

Fano

Nahlásit jako SPAM
IP: 195.39.86.–
Kit+15
Guru
28. 2. 2016   #2
-
0
-

#1 Fano
Tohle dělám tak, že mám jednu centrální tabulku s ID součástky a jejím názvem a typem. Na ni jsou navázány tabulky se skupinami atributů tak, že je to ID pro ně společné - jako primární klíč používají cizí klíč centrálního ID. Mají tedy vazbu 1:1 s centrální tabulkou.

Při vyhledávání podle atributů používám INNER JOIN. Tím je rychlé i sekvenční vyhledávání v případech, kdy ty atributy nejsou indexovány.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
3989 příspěvků
29. 2. 2016   #3
-
0
-

Rezistor
- skupina "el. soucastky"
- skupina "rezistory"
- atribut 1 "5k8"
- atribut 2 "prodejce praha"
Skupina
- 1, "el. soucastky" // nebo muzes pridat sloupec s id atributy
- 2, "rezistory"
Atributy skupiny
- id, id_skupina, nazev
- 1, 1, "nazev"
- 2, 1, "pouzdro"
- 3, 2, "napeti"

Kazda skupina ma seznam vlastnich nazvu atributu.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:d1d3:8c...–
peter
~ Anonymní uživatel
3989 příspěvků
29. 2. 2016   #4
-
0
-

Jeste by mozna bylo dobre pridat k seznamu atributu tez poradi a mozna ruzne druhy viditelnosti na ruznych strankach. Jakoze, aby si mohl uzivatel navolit, ze chce zobrazovat treba jen 3 konkretni atributy a ostatni az pod zalozkou "kompletni specifikace" a nemuzel upravovat sql dotaz.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:d1d3:8c...–
Fano
~ Anonymní uživatel
2 příspěvky
2. 3. 2016   #5
-
0
-

OK, zkusím to tak. Nějak tak jsem si to představoval. Ale jak vidím ještě bych se měl hodně naučit o databázích a SQL. Neznáte nějaký dobrý tutoriál nebo seriál nejlépe v češtině, abych to kompletně pochopil. Zkoušel jsem tutoriály na youtube, ale to jsou vždy jen útržky.

Dík

Fano

Nahlásit jako SPAM
IP: 195.39.86.–
peter
~ Anonymní uživatel
3989 příspěvků
2. 3. 2016   #6
-
0
-

:) Nic takoveho jsem nepouzil. Vzdycky jsem si nasel "simple example" na konkretni sql prikaz a prostudoval, co a jak resi.

Hlavni je, umet si predstavit, ze tabulka v databazi vypada jako tabulka v excelu. A pokud neco delis na kategorie, tak je dobre mit zvlast tabulku s nazvy kategorii a pracovat dal s id_kategorie pro rychlejsi vyhledavani.
Treba jako mas seznam lidi a ti maji bydliste ve mestech. Logicky se nabizi moznost mit tabulku mest zvlast a seznam lidi zvlast. Kdyz budes hledat vsechny z mest zacinajicich na "pra" (praha, prachatice...), tak prohledas 100 radkovou tabulku mest. Vyberes vsechna id mest a pouzijes id do dotazu. id jsou typu INT, coz je delka obvykle 2 byte a vic. "pra" je delky 3. Takze vyhledavani bude rychlejsi asi v pomeru 2/3.

Taky je dobre, u mysql, pouzit indexy. Spousta lidi nevi, ze si musi indexy rucne vyklikat v phpmyadminovi nebo pridat k sql dotazu pro vytvoreni tabulky. Bez indexu takove hledani moc rychle neni, u mysql.

No, a to, nac ses ptal ty, to je obecne trochu problem. Treba se nad tim trochu zamyslet.
- atributy maji nazev (tabulky: at_list)
- atributy maji skupiny (tabulky: at_skupiny, at_skup_list)
- hodnoty atributu slouzi pro vyhledavani - cislo se vyhleda ryxchleji nez text, takze by mozna bylo dobre oddelit zvlast textove a ciselne atributy. Cili, bud to dat jako dva ruzne sloupe do jedne tabulky nebo pro ciselne udelat zvlast tabulku a oznacit v at_list typ atributu.

Samozrejme je tu moznost to proste zplacat vsechno do jedne tabulky, jako text. Vyhledavani bude pomalejsi, budes mit treba duplicitni hodnoty atributu s ruznymi nazvy "napeti" "napětí" "Napeti". Ale usetris furu tabulek :) A snadneji se bude delat import/export do excelu (csv format). Ale budes mit spoustu prazdnych bunek a kvuli novym atributum budes pridavat sloupce. A take se zjednodusi SQL dotazy, kdyz je to v jedne tabulce. Ale je to pro stavajici asystemy spis tahorsi cesta s vyhledy do budoucna.

nazev, pouzdro, napeti, vaha, rozmery
"rezistor", "...", "...", null, null
"kladivo", null, null, "...", "..."
(excel to takto dokaze precist i zapsat, jako CSV)

Nahlásit jako SPAM
IP: 2001:718:2601:26c:e1a9:6e...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý