Navrh db – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Navrh db – MySQL – Fórum – Programujte.comNavrh db – MySQL – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
olgo0
Věrný člen
12. 1. 2007   #1
-
0
-

To D1ce: mas pravdu asi som mal by konkretnjsi.visledom ma byt databaza archivujuca fotky skupin a obaly ich albumov.
pre predstavu: www.7591.wz.cz.
chcel by som vytvorit vyhladavanie pomocou mena skupiny, roku zalozenia stylu atd. ako napriklad na:
www.metal-archives.com.
najjednoduhsie je samozrejme vytvorit databazu ktora by ukladala informacie o kazdom jednotlivom albume ale kedze kazda skupina ma vecsinou viac ako jeden album a s kazdeho statu je viac ako len jedna skupina udaje by sa opakovaly a preto chcem vytvorit "pomocne" tabulky a do tej hlavnej vkladat len indexi (v nadeji ze sa tak usetri nejake miesto).

snad je to o neco zrozumitelnejsie (dufal som ze to vypline uz s toho nacrtu)

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Reklama
Reklama
12. 1. 2007   #2
-
0
-

1) pouzivej pro primarni sloupec jmeno "ID" popr "id"; auto increment, unique a not null jsou snad samozrejmosti.
2) nezakladej tabulku pro kazdou skupinu, udelej univerzalni tabulku treba ID|group_id|name|year

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Jakub0
Super člen
13. 1. 2007   #3
-
0
-

mas pravdu asi som mal by konkretnjsi.visledom ma byt databaza archivujuca fotky skupin a obaly ich albumov.


Ještěže si to uvědomuješ, ale chtělo by to udělat ještě jeden krůček a to vysvětlit nám co nejpodrobněji jak by sis to představoval, prosím.

najjednoduhsie je samozrejme vytvorit databazu ktora by ukladala informacie o kazdom jednotlivom albume ale kedze kazda skupina ma vecsinou viac ako jeden album a s kazdeho statu je viac ako len jedna skupina udaje by sa opakovaly a preto chcem vytvorit "pomocne" tabulky a do tej hlavnej vkladat len indexi (v nadeji ze sa tak usetri nejake miesto).


Jenomže já z toho bohužel téměř vůbec nechápu co by mělo být výsledkem. Samozřejmě si můžu dát tu práci, mrknout se jak to funguje jinde a o něco se pokusit, ale byl bych převelice rád, kdybys tento krok udělal prosím ty a zanesl ho do tohoto fóra. Nemusí to být buhvíjaká podrobná analýza, ale měla by být postačující k řešení problému, prostě musím na něčem stavět a zatím nemám ani tucha na čem. Bohužel link na metal-archives.com nefunguje asi mají přetížený server zrovna. Z toho náčrtku jsem ještě víc zmatěnější než popisu.

snad je to o neco zrozumitelnejsie (dufal som ze to vypline uz s toho nacrtu)


Heh je to ještě horší než předtím.
Btw. Věřím, že se jednou dopracujem ke kýženému výsledku.
<ot>Hlavně že tady jsou smajlíci s fakáčema, ale ani jeden s *THUMBS_UP*</ot>

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
olgo0
Věrný člen
13. 1. 2007   #4
-
0
-

To D1ce:
velice si cenim tvoju ochotu ale asi zme sa nepochopili. nechcem od teba hotovi zdrojak (ako to zvyknes robit), len som hcel aby mi nekdo odobril ze to o co sa pokusam neni uplna blbost a ze to vobec moze fungovat.

k tomu navrhu:
vysledkom budu profily jednotlivyh skupin obsahujuce nazov skupiny, rok vzniku, krajinu povodu, styl kt. ta skupina hra (strucne info). a vsetky oficialne albumy aj s rokom vydania. kludne by to mohlo vizerat nasledovne:

nazov_albumu I rok_vydania_albumu I nazov_skupiny_ktora_ ho_vydala I rok_vzniku_skupiny I styl_ih_hudby I krajina_povodu

ale je viac ako pravdepodobne ze skupina ma napriklad viac albumov a nektore udaje by sa tak casto opakovali a db by bola zbytocne velka.
Preto chcem vytvorit osve tabulky pre vlastnosti kt. sa opakuju (narodnost, styl atd) ocislovat ih a do tejto hlavnej tabulky zapisovat iba cisla jednotlivih hodnot. takze ta tabulka by vyzerala takto:

nazov_albumu I rok_vydania_albumu I ID_skupiny I

dalej vyhladavanie ba malo fungovat podla nasledujucich vlastenosti: mazov_skupiny, nazov_albumu, hudobny_styl, krajina_povodu. (pripadne ih kombinacia ale to uz by nemal byt problem)

vysledkom toho hladania chcem aby bol zoznam skupin ktore vyhladavaniu vyhovuju (co ine asi) (teda napriklad vsetky nemecke skupiny ktore v db su).

uz vazne neviem ako inak by som to povedal. dik za trpezlivost D1ce :)

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
13. 1. 2007   #5
-
0
-

Musim ti znova opakovat, ze kdyz budes zakladat dynamicke tabulky, tak z toho nikdy nevzejde nic dobreho? Udelej to tak, jak jsi rikal na zacatku, ale alba vseh skupin sluc do jedne velke jak uz jsem navrhoval. Pro mysql neni problem tabulka s tisice zaznamy, ale 150 tabulek bude dost velky problem pro tebe (a konec koncu mozna i pro mysql)

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
olgo0
Věrný člen
13. 1. 2007   #6
-
0
-

To CommanderZ: ved ano o tom si ma presvedcil hned. vizera to tak na 4 tabulky (groups,countries,styles,albums) moze byt?
btw.: co je zle na dynamickom pocte tabuliek?

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Jakub0
Super člen
13. 1. 2007   #7
-
0
-

To olgo: Konečně jsme sa pochopili, přestože jsem čekal bůhvíco nechceš, takže můj verdikt zní:



CREATE TABLE %DB_PREFIX%albums (
id INT UNSIGNED AUTO_INCREMENT NOT NULL,
bid INT UNSIGNED NOT NULL,
name VARCHAR(100) NOT NULL UNIQUE,
arelease DATE NOT NULL,
INDEX i_bid (bid),
PRIMARY KEY(id)
)
DEFAULT CHARACTER SET %CHARSET% COLLATE %COLLATION%;

CREATE TABLE %DB_PREFIX%bands (
id INT UNSIGNED AUTO_INCREMENT NOT NULL,
sid INT UNSIGNED NOT NULL,
oid INT UNSIGNED NOT NULL,
name VARCHAR(100) NOT NULL UNIQUE,
foundation DATE NOT NULL,
INDEX i_sid (bid),
INDEX i_oid (bid),
PRIMARY KEY(id)
)
DEFAULT CHARACTER SET %CHARSET% COLLATE %COLLATION%;

CREATE TABLE %DB_PREFIX%styles (
id INT UNSIGNED NOT NULL,
name VARCHAR(100) NOT NULL UNIQUE,
PRIMARY KEY(id)
)
DEFAULT CHARACTER SET %CHARSET% COLLATE %COLLATION%;

CREATE TABLE %DB_PREFIX%origins (
id INT UNSIGNED NOT NULL,
name VARCHAR(100) NOT NULL UNIQUE,
PRIMARY KEY(id)
)
DEFAULT CHARACTER SET %CHARSET% COLLATE %COLLATION%;

Ked by bol problém sa spajáním potažmo vyhledávániem, neboj sa ozvat.
Poznámka: Je to optimalizované na vyhladavanie né na updatovanie či vkladanie.

olgo píše:#
# btw.: co je zle na dynamickom pocte tabuliek?


Už len vyhledávanie by bolo pekelnie.

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
13. 1. 2007   #8
-
0
-

OT D1ce: Ty jsi blazen (samozrejme mysleno pozitivne), mel by jsis najit neco cim zaplacnes volny cas, evidentne ho mas prebytek :ms_0002:

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
olgo0
Věrný člen
13. 1. 2007   #9
-
0
-

To D1ce: To CommanderZ: dakujem vam chlapci pustim sa do toho len co co sa mi podari rozbehnut mysql.

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Jakub0
Super člen
13. 1. 2007   #10
-
0
-

CommanderZ píše:#
# OT D1ce: Ty jsi blazen (samozrejme mysleno pozitivne), mel by jsis najit neco cim zaplacnes volny cas, evidentne ho mas prebytek :ms_0002:


To si jenom myslíš, většinou jsem prováděl operace copy & paste & update.
Edit:
Btw1. Když porovnám počet svých příspěvků a tvých, zjistím, že vedeš o něco přes polovinu, proto bych polemizoval o tom, kdo má více volného času.
Btw2. Zmetku jeden (myšleno of course pozitivně :P ), poté co jsem si přečetl rvůj příspěvek, musel jsem jít s fotrem pytlovat. Sodoma gomora. :ms_0155:

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
Karel Gil0
Newbie
13. 1. 2007   #11
-
0
-

Dice: Pytlovat? Co to je? :D

Nahlásit jako SPAM
IP: ...–
Karel Gil - Software Developer!
13. 1. 2007   #12
-
0
-

D1ce píše:#
#

CommanderZ píše:#
# OT D1ce: Ty jsi blazen (samozrejme mysleno pozitivne), mel by jsis najit neco cim zaplacnes volny cas, evidentne ho mas prebytek :ms_0002:

#
#To si jenom myslíš, většinou jsem prováděl operace copy & paste & update.#
#Edit:#
#Btw1. Když porovnám počet svých příspěvků a tvých, zjistím, že vedeš o něco přes polovinu, proto bych polemizoval o tom, kdo má více volného času.#
#Btw2. Zmetku jeden (myšleno of course pozitivně :P ), poté co jsem si přečetl rvůj příspěvek, musel jsem jít s fotrem pytlovat. Sodoma gomora. :ms_0155:



To jsem nepochopil, samozrejme ze ty jsi na to musel vynalozit 10* vice casu protoze ja jsem tam jen namlatil prvni co me napadlo, kdezto ty jsi bastlil dvacetiradkovy kod ;)

A to btw2...to je nejaka narazka na moje casy prispevku?

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Jakub0
Super člen
13. 1. 2007   #13
-
0
-

gil.karel píše:#
# Dice: Pytlovat? Co to je? :D


Taková z4sr4ná práce, při který házíš do pytlů brikety a šíleně se při to dusíš mourem.

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
olgo0
Věrný člen
13. 1. 2007   #14
-
0
-

tak db je vytvorena este je sanca neco zmenit:



mysql> show tables;
+------------------------------+
| Tables_in_gallery_of_suicide |
+------------------------------+
| albums |
| countries |
| groups |
| styles |
+------------------------------+

mysql> describe albums;
+-----------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+-------+
| name | varchar(100) | YES | | NULL | |
| author | tinyint(3) unsigned | YES | | NULL | |
| published | tinyint(3) unsigned | YES | | NULL | |
+-----------+---------------------+------+-----+---------+-------+

mysql> describe countries;
+---------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------+------+-----+---------+-------+
| id | tinyint(3) unsigned | NO | PRI | | |
| content | varchar(30) | YES | | NULL | |
+---------+---------------------+------+-----+---------+-------+

mysql> describe groups;
+---------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------+------+-----+---------+-------+
| id | tinyint(3) unsigned | NO | PRI | | |
| name | varchar(50) | YES | | NULL | |
| year | tinyint(3) unsigned | YES | | NULL | |
| country | tinyint(3) unsigned | YES | | NULL | |
| style | tinyint(3) unsigned | YES | | NULL | |
+---------+---------------------+------+-----+---------+-------+

mysql> describe styles;
+---------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------+------+-----+---------+-------+
| id | tinyint(3) unsigned | NO | PRI | | |
| content | varchar(30) | YES | | NULL | |
+---------+---------------------+------+-----+---------+-------+


to D1ce: omluvam sa ze som nepouzil tvoj kod ale tak so clovek nic nenauci.

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Jakub0
Super člen
13. 1. 2007   #15
-
0
-

to D1ce: omluvam sa ze som nepouzil tvoj kod ale tak so clovek nic nenauci.


Vůbec nevadí, ak sa ti tohle páčí, kdludně nad tím pracuj. V podstatě si udělal to samé v bleděmodrém. :)

Jinak abych zhodnotil ten tvůj výtvor:
- Nelíbí se mi divné názvy tabulek, sloupců, ale to je věc stylu.
- Spousta hodnot bude smět mít NULL value, což IMHO není dobré.
- Nevidím do indexů.
+ Přidal jsi sloupec published,
- ale jistojistě to bude booleovská hodnota, proto bych její typ změnil na TINYINT(1).
- Unikátním sloupcům bych dodal UNIQUE vlastnost.
- Jak píše dole CommanderZ, s TINYINT(3) rychle dosáhneš limitů.

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
13. 1. 2007   #16
-
0
-

proc proboha pouzivas tinyint na id? Staci obcas neco smazat a neco pridat a toho stropu 255 dosahnes raz dva, nevidim duvod proc tam nemit normalni int

doporucuju si precist tohle: http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

edit: a roky budes mit ve zkracene forme? jinak je do tinyint nenacpes...

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
olgo0
Věrný člen
13. 1. 2007   #17
-
0
-

To CommanderZ: s tym tinyint mas pravdu ale iba v tabulkah albums a groups. dik za upozornenie
v skretenej forme nie, tam je tusim minimum 1969. bude tam $rok - 1900. vac ako tinyint nebude treba.
dik za link mam doma neco podobne hoci ne tak obsirne ale zato !CESKY!
a to id, ked sa vimaze riadok tak to id uz nebude pouzite (aj ked bude "volne")?

To D1ce:
k tomu moznemu not null - db budem plnit rucne (taky je zatial plan) takze to vzdi aj skontrolujem. spolu s unique to neni nutnost ale povedzme zlepsovak. diki
"Nevidím do indexů" - tomuto nerozumiem
"ale jistojistě to bude booleovská hodnota, proto bych její typ změnil na TINYINT(1)" - ???

co znamena to cislo v zatvorke v TINYINT(3) ja som pisal len "TINYINT UNSIGNED". to je pocet cifier?

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
olgo0
Věrný člen
13. 1. 2007   #18
-
0
-

tak teda:



mysql> show tables;
+------------------------------+
| Tables_in_gallery_of_suicide |
+------------------------------+
| albums |
| countries |
| groups |
| styles |
+------------------------------+

mysql> describe albums;
+-----------+----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+----------------------+------+-----+---------+-------+
| name | varchar(100) | NO | | | |
| author | int(10) unsigned | NO | | | |
| published | tinyint(10) unsigned | NO | | | |
+-----------+----------------------+------+-----+---------+-------+

mysql> describe countries;
+---------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------+------+-----+---------+-------+
| id | tinyint(3) unsigned | NO | PRI | | |
| content | varchar(30) | NO | PRI | | |
+---------+---------------------+------+-----+---------+-------+

mysql> describe groups;
+---------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------+------+-----+---------+-------+
| id | int(10) unsigned | NO | PRI | | |
| name | varchar(50) | NO | | | |
| year | tinyint(3) unsigned | NO | | | |
| country | tinyint(3) unsigned | NO | | | |
| style | tinyint(3) unsigned | NO | | | |
+---------+---------------------+------+-----+---------+-------+

mysql> describe styles;
+---------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------+------+-----+---------+-------+
| id | tinyint(3) unsigned | NO | PRI | | |
| content | varchar(30) | NO | UNI | | |
+---------+---------------------+------+-----+---------+-------+

mysql> exit

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Jakub0
Super člen
13. 1. 2007   #19
-
0
-

olgo píše:#
# "Nevidím do indexů" - tomuto nerozumiem


Prostě udělej indexy všude tam, kde se bude výbíra a vyhledávat víc než vkládat a updatovat.

#
#"ale jistojistě to bude booleovská hodnota, proto bych její typ změnil na TINYINT(1)" - ???


Buď je publikovaný či ne 1/0 TRUE/FALSE.

co znamena to cislo v zatvorke v TINYINT(3) ja som pisal len "TINYINT UNSIGNED". to je pocet cifier?


Bingo!

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
olgo0
Věrný člen
13. 1. 2007   #20
-
0
-

To D1ce: hodnota published obsahuje rok vydania.

to all: dik za vas cas

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Jakub0
Super člen
13. 1. 2007   #21
-
0
-

olgo píše:#
# To D1ce: hodnota published obsahuje rok vydania.


Aha sorry, nějak mě zmátl název sloupce.

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
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, 9 hostů

Podobná vlákna

Návrh — založil Ilhvm

Návrh — založil Jan Malý

Navrh — založil Tomi

Navrh na domenu — založil marioff

Navrh tridy — založil Scrat

 

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