Avatar
raker
Člen
Avatar
raker:

Zdravím,

potřeboval bych poradit ohledně návrhu databázových tabulek. Mám produkty a k nim může ale nemusí existovat šablona, záleží na typu produktu. Nemůžu se rozhodnout, zda-li použít dvě nebo tři tabulky:

Dvoutabulkové schéma:

Product


Id
Name
Type
Template_Id (Nullable)

Template


Id
Name

Třitabulkové schéma:

Product


Id
Name
Type

ProductTemplate


Product_Id
Template_Id

Template


Id
Name

Relace mezi produktem a šablonou je 1:1

Kterou variantu by bylo lepší použít a proč?

Předem díky

 
Odpovědět 14.5.2014 13:11
Avatar
Odpovídá na raker
Michal Štěpánek:

Pokud těch šablon k jednomu produktu bude více, pak jest třeba použít to třítabulkové řešení, jinak jsou tři tabulky zbytečné

Nahoru Odpovědět 14.5.2014 13:47
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
raker
Člen
Avatar
raker:

Právě naopak..jedna šablona může být přiřazena k více produktům. Většina produktů ale nebude mít žádnou šablonu, tak mi přijde zbytečné mít sloupec navíc, kde bude většinou null..

 
Nahoru Odpovědět 14.5.2014 15:53
Avatar
Odpovídá na raker
Pavel Winkler:

Dělám jednu šablonu na všechno. Podle dat, která jsou k dispozici k produktu, si to samo vybere, která část šablony bude použita.

Edit: Stačí tedy jen jedna tabulka.

Editováno 14.5.2014 16:14
 
Nahoru Odpovědět 14.5.2014 16:13
Avatar
Odpovídá na raker
Michal Štěpánek:

Myslel jsem to tak, že pokud jeden produkt nemůže mít více šablon, pak je zbytečné mít tu třetí tabulku a stačí mít jen záznam, která z těch šablon je přiřazena...

Nahoru Odpovědět 14.5.2014 17:35
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Pavel Winkler
Michal Štěpánek:

To není dobré řešení, protože ta šablona se časem může nafouknout a úpravy pak budou složité, nehledě k nepřehlednosti v kódech...
Vždycky je lepší (pokud se používají šablony) mít těch šablon víc a neplácat všechno dohromady... :-)

Editováno 14.5.2014 17:39
Nahoru Odpovědět 14.5.2014 17:38
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
raker
Člen
Avatar
raker:

"je zbytečné mít tu třetí tabulku a stačí mít jen záznam, která z těch šablon je přiřazena..."
Platí to i v případě, kdy větší část produktů nebude mít šablonu přiřazenou? Protože když vidím v db sloupec, kde je skoro všude null, nemám dobrý pocit :)

 
Nahoru Odpovědět 14.5.2014 19:02
Avatar
Odpovídá na Michal Štěpánek
Pavel Winkler:

Šablona do 1000 řádek přece nepředstavuje žádný problém, zejména když ji mám rozčleněnou do nezávislých bloků, kde má svou hlavičku a patičku hezky pohromadě. To se nerozsype.

 
Nahoru Odpovědět 19.5.2014 13:52
Avatar
Odpovídá na Pavel Winkler
Michal Štěpánek:

Osobně by se mi moc nechtělo hledat něco v šabloně o tisíci řádcích, i kdyby byla sebelépe rozčleněna do nezávislých bloků... A když budou šablony přibývat, bude se dále ta "jedna" univerzální šablona nafukovat...
P.S. Ale když ti to takhle vyhovuje, je to tvoje volba... 8-)

Nahoru Odpovědět 19.5.2014 15:39
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Michal Štěpánek
Pavel Winkler:

Tam už se nemá co nafukovat, na 1000 řádek jsem se ještě nedostal ani u rozsáhlých webů. Každý blok je tam jen jednou. Kdybych to měl ve více šablonách, musely by se některé části opakovat. Časem by v tom byl zmatek, protože kdybych chtěl změnit třeba záhlaví, musel bych to dělat ve všech šablonách. Takhle to dělám jen v jedné.

 
Nahoru Odpovědět 19.5.2014 16:07
Avatar
Odpovídá na Michal Štěpánek
Pavel Winkler:

Zrovna dnes jsem viděl jeden zdroják v C#, který měl 200 řádek. Autorovi evidentně nevadilo, že má tu třídu delší, než je zdrávo. Proč by mi měly vadit dlouhé šablony?

 
Nahoru Odpovědět 19.5.2014 16:12
Avatar
Odpovídá na Pavel Winkler
Luboš Běhounek (Satik):

To, že někdo jiný prasí špagety kód neznamená, že máš prasit taky - taky občas narazím na funkce dlouhé pár set řádků, ale rozhodně není dobrý nápad se to snažit napodobovat :)

Nahoru Odpovědět  +1 19.5.2014 19:33
:)
Avatar
Odpovídá na Luboš Běhounek (Satik)
Pavel Winkler:

jQuery má aktuálně 10308 řádek v jednom souboru. Tvrdí snad někdo, že jeho autor prasí špagety?

O funkcích nebyla řeč, jednotlivé bloky mé šablony nemívají víc než 20 řádek. Vadí snad, že je mám v jednom souboru? To mám jednotlivé komponenty includovat, aby načítání šablony trvalo déle?

 
Nahoru Odpovědět 20.5.2014 9:34
Avatar
Odpovídá na Pavel Winkler
Luboš Běhounek (Satik):

To byla reakce na ten komentář o zdrojáku v C# s 200 řádky.
200 řádků na soubor nebo třídu je i v C# celkem malý soubor, myslel jsem, že je to v jedné funkci, když jsi to považoval za dlouhé, což už špagety obvykle jsou.

K jQuery - zdroják jsem neviděl, takže netuším. Není ten soubor třeba nějaká zhuštená verze určená pro web?
Bohužel tyhle velké soubory jsou ve firmách ve větších projektech celkem běžně se vyskytující jev, většinou je to důsledek toho, že se programátoři bojí do toho šláhnout a soubor rozdělit - např. u nás tu je asi 10 .cpp souborů, které mají 40 000 - 50 000 řádků... :)

Nahoru Odpovědět 20.5.2014 11:58
:)
Avatar
Odpovídá na Luboš Běhounek (Satik)
Pavel Winkler:

"jeden zdroják v C#, který měl 200 řádek" - opravdu jsem tím myslel jeden soubor s jednou třídou a několika metodami. Podle mne je to víc než běžný limit.

jQuery - ano, jsou dvě verze. Ta druhá je sešlapaná na 50 KB, ale o té jsem psát nechtěl. Autor píše tu vývojovou, která je také k dispozici. Asi se v ní vyzná nebo ji také generuje z více samostatných souborů.

40-50 křádek? Hrůza.

 
Nahoru Odpovědět 20.5.2014 12:48
Avatar
Odpovídá na Pavel Winkler
Luboš Běhounek (Satik):

Jeden soubor s 200 řádků - to je tak úkol do školy :)

Nahoru Odpovědět 20.5.2014 15:07
:)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 16 zpráv z 16.