Diskuze: Návrh databázy MSSQL - ako zvoliť?

Ostatní jazyky SQL SQL a databáze Návrh databázy MSSQL - ako zvoliť?

Avatar
jlenyi
Člen
Avatar
jlenyi:

Robím aplikáciu v c# pre dáta z ms-sql servera. Je to hodne dát, a z hľadiska rýchlosti prevádzky po sieti, a minimalizácii prenosu dát po sieti musím zvoliť vhodnú databázu. Čo bude pre mňa výhodnejšie -
1 -mať tabulku s málo záznamami vychádza mi to na 360 záznamov a cca 300 polí, alebo
2 -tabulku s málo dbf. poliami - 6 polí a 18000 záznamov?.
Prístup bude (teda zatial plánujem )cez sql dotazy(hlavne na update), a na select a posielanie dát do počítačov cez sieť stored procedures sa sql serveri.
ďakujem za reakcie a radu.
Ďakujem
p.s. idem na dovolenku na 2 týždne, reagovať budem až po návrate.

 
Odpovědět 11. dubna 18:11
Avatar
Odpovídá na jlenyi
Michal Štěpánek:

Hlavní zásada návrhu DB je ta, že by se záznamy v jedné tabulce měly týkat stejné oblasti. Tím myslím, že by se neměly míchat záznamy do jedné tabulky(údaje z faktury, údaje o produktech, údaje o zákazníkovi, atd. by měly mít každý svoji tabulku).

Nahoru Odpovědět 11. dubna 23:04
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
jlenyi
Člen
Avatar
jlenyi:

je to jedna oblasť. Rezervácia ubytovania, kde je v budove cca 300 izieb, a na každú postel v budove (sú jedno aj dvojpostelové izby) je rezerácia na celý rok, kde chcem ukladať meno, priezvisko, bydlisko, id a čas nastupu a odchodu na každú izbu (posteľ(lôžko)).
alebo výhodnejšie do databazy s lôžkami dať len "id" ubytovaného a v ďalšej databáze mať k danému "id" dalšie udaje o ubytovanom (meno, bydlisko, číslo pasu, atď... )

Editováno 12. dubna 7:09
 
Nahoru Odpovědět 12. dubna 7:07
Avatar
Honza
Člen
Avatar
Honza:

Určitě je potřeba rozsekat to do samostatných tabulek (zákazníci, pokoje, rezervace atd.) a propojit to přes primární/cizí klíče. Určitě bych nedělal sloupeček pro každý pokoj (možná jsem to jen špatně pochopil), ale udělal bych si tabulku se seznamem pokojů a do rezervace pak ukládal jen jeho ID. To ti umožní přidávat/odebírat pokoje a hlavně nějak rozumě s těmi daty pracovat.
Jak už tu bylo řečeno, v každé tabulce by měla být data která spolu souvisejí. Zkus to rozsekat na jednotlivé oblasti a ty dát k sobě. Pak už ti z toho struktura databáze tak nějak vyplyne. Počtu řádků se neboj, SQL Server zvládne mnohem mnohem víc než popisuješ, ale 300 sloupců v jedné tabulce mi příjde moc na rezervační systém, bude se s tím blbě pracovat.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 12. dubna 7:22
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
jlenyi
Člen
Avatar
jlenyi:

Ono mne sa bude v c# lepšie pracovať s riadkami databázy ako a poliami, ide mi však aj o zahltenie siete - bude niekolko počítačov v sieti a čo menej zaťaží sieť?
ak načítam jeden riadok databázy s 300 poľami, alebo 300 riadkov s jedným poľom?
chcem graficky znázorniť ubytovací systém prehladne na jednom formulári všetkých 300 izieb, kde budu farebne označené volné zelenou a obsadené červenou , a na to potrebujem načítať dáta o celej ubytovacej kapacite.
Čo myslíš, čo menej zaťaží a zahltí sieť? Nie je tam optika, ani 1G, iba 100M eternet (sú väčšie vzdialenosti medzi počítačmi - 50-90m)

 
Nahoru Odpovědět 12. dubna 9:17
Avatar
Odpovídá na jlenyi
Michal Štěpánek:

Nejde o zahlcení sítě, ale o délku zpracování dotazu. Když se server bude muset probírat jednou tabulkou o 300 sloupcích, myslím si, že kdyby měl ruce, tak tě něčím bací.

Nahoru Odpovědět 12. dubna 10:07
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
jlenyi
Člen
Avatar
jlenyi:

Ďakujem za odpoveď. Spravím viacej tabuliek po málo stlpcoch.

 
Nahoru Odpovědět  +1 12. dubna 10:47
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 7 zpráv z 7.