Datová struktura - jak vytvořit vhodné objekty   otázka

VB.NET, Optimalizace, Databáze

Dobrý den,

rád bych se poradil jak nejlépe vytvořit vhodnou datovou strukturu.

Potřebuji ukládat řadu různých hodnot do jednoho souboru. Jedná se o seznam opakujících se údajů. Tyto jednotlivé údaje se skládají z několika skupin, které jsou různě rozvětveny. Jedná se řádově o cca 80-100ůdajů pro každý jednotlivý záznam seznamu.

Nechci používat databázi a nejraději bych ukládal hodnoty ve formátu xml. Momentálně již mám vyřešeno ukládání pomocí jednotlivých jednoduchých xml objektů, ze kterých je to poskládáno, ale přestává mi toto řešení vyhovovat z hlediska rozvětvenosti struktury a složitějšího přístupu k jednotlivým položkám (načítání po jednotlivých skupinách).

Uvažuji o vytvoření datové struktury pomocí provázaných tříd, tím pádem bych měl přímo přístup k jednotlivým položkám, a načítat/ukládat položky do souboru pomocí serializace (binární). Rád bych se poradil jestli v např. v tomto řešení na mě nečeká nějaká nečekaná úskalí, případně jestli není vhodnější cesta.

Také mě napadá možnost používat strukturu vytvořenou pomocí DataSetu, z něhož jde přímo data ukládat/načítat do xml.

Předem děkuji za rady

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Záleží hlavně na velikosti ukládaných dat (počtu záznamů). XML a serializace mají jednu hlavní nevýhodu: Všechna data se načtou do paměti, takže tato řešení nejsou použitelná pro velké množství dat. Dal by se použít také klasický zápis do binárního souboru, jenže zde zase budete mít problémy s rozvětvenými strukturami dat. Jako nejlepší řešení mi připadá použít Microsoft SQL Server Compact Edition.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Velikost souborů by se mohla pohybovat řádově ve stovkách kB, max několik MB.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevíte prosím Vás jaké jsou omezení Microsoft SQL Server Compact Edition?

Není např. omezen objem dat?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Omezení na objem dat tam není, jsou tam omezení jiného druhu - umí to je jednoduché SQL, neumí to stored procedury, triggery atd. Ale jako úložiště většího množství dat pro jednu aplikaci je to více než vhodné, pokud s tím nemá pracovat víc uživatelů najednou.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak to pozor. Omezení velikosti databáze jsou 4 GB, stejně jako u Expressu. Jinak další omezení je tam maximální počet souběžných připojení do databáze - 256 (v Express verzi není omezeno).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky za info. Právě pro Expres o tomto omezení vím, ale pro Compact Ed. jsem to nenašel.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback