Toon posts:

Generic Datarows

Pagina: 1
Acties:

Onderwerpen


  • qanar
  • Registratie: februari 2008
  • Laatst online: 21-05-2019
Volgende probleem stelt zich:

Klant heeft n types van CSV files, waarbij n later kan veranderen. Iedere CSV heeft een verschillende header, maar bevat wel alleen doubles. De klant wil zelf (later) andere types van CSV files kunnen toevoegen (zonder te programmeren). Wat is nu de beste manier om dit te modelleren? (taal is java)

Zelf dacht ik aan:
DatarowCategory
--
int aantalItems
List <String> headers
Beschrijving van de headers van een datarow
Datarow
--
List <Double> values
DatarowCategory category
een datarow, moeilijk om values toe te voegen (moet letten op locatie, en oob problemen die niet auto getriggered worden)
Dataset
--
List <Datarow> data
DatarowCategory category
bevat alle datarows van een csv file en een verwijzing naar hoe de header eruit ziet.

Dit zou betekenen dat bij het toevoegen van een datarow aan een dataset (tijdens het inlezen van de CSV of vanuit een andere bron) er gecontroleerd moet worden dat de category van de datarow en de dataset gelijk zijn.

Nu ben ik op wiki wezen snuffelen in Go4 patterns, maar daarin vind ik voor dit probleem niet meteen oplossing en via google kom ik vooral uit op de .Net klasse datarow.

[Voor 11% gewijzigd door qanar op 27-09-2010 11:04]


  • Killemov
  • Registratie: januari 2000
  • Laatst online: 30-06 22:36

Killemov

Ik zoek nog een mooi icooi =)

Het inlezen is niet zo'n probleem, je kunt met bijvoorbeeld XML (+JAXB?) prima een bepaald formaat definieren.

De grote vraag is ... Wat ga je met die ingelezen gegevens doen? Ook bewerken zonder programmeren? 8)7

Hey ... maar dan heb je ook wat!


  • qanar
  • Registratie: februari 2008
  • Laatst online: 21-05-2019
We willen de data bijhouden (in SQL) om die daarna te kunnen tonen in een JSF website. Daarom proberen we een handig datamodel te vinden om via JPA/ORM zelf niet te veel aan de database te moeten doen.

Inlezen van de data is dus geen probleem. Het is vooral het datamodel waar we een beetje over vallen.

  • Killemov
  • Registratie: januari 2000
  • Laatst online: 30-06 22:36

Killemov

Ik zoek nog een mooi icooi =)

qanar schreef op maandag 27 september 2010 @ 10:59:
Dit zou betekenen dat bij het toevoegen van een datarow aan een dataset (tijdens het inlezen van de CSV of vanuit een andere bron) er gecontroleerd moet worden dat de category van de datarow en de dataset gelijk zijn.
Punt is dat je data in de breedte dynamisch is (OF je ziet de hele row als een string). Het aantal kolommen dus. Dit vinden databases in het algemeen niet zo leuk. Dan ga je dus naar excel-sheet-achtige oplossingen waarbij je de hele boel dusdanig normaliseert dat elke waarde in een eigen row terecht komt. (PK ~= category_id, workbook_id, sheet_id, column_id, row_id) Succes daarmee.

OF, en dat zou ik dus doen, maak van elke datarowcategory lekker een eigen table. KISS anyone?

OF, de HELE file als een clob opnemen en Java-side interpreteren.

Hier moet ook wel even bij vermelden dat postgres csv native ondersteunt: http://www.postgresql.org/docs/8.2/static/sql-copy.html Dus ... zit je al aan een DBMS vast? >:)

Hey ... maar dan heb je ook wat!


  • qanar
  • Registratie: februari 2008
  • Laatst online: 21-05-2019
Killemov schreef op dinsdag 28 september 2010 @ 02:50:
[...]

Punt is dat je data in de breedte dynamisch is (OF je ziet de hele row als een string). Het aantal kolommen dus. Dit vinden databases in het algemeen niet zo leuk. Dan ga je dus naar excel-sheet-achtige oplossingen waarbij je de hele boel dusdanig normaliseert dat elke waarde in een eigen row terecht komt. (PK ~= category_id, workbook_id, sheet_id, column_id, row_id) Succes daarmee.
De normalisatie zou dus door JPA gebeuren, dat zou het in ieder geval al gemakkelijker maken. Is ook de oplossing zoals ik ze al gepost heb.
Killemov schreef op dinsdag 28 september 2010 @ 02:50:
OF, en dat zou ik dus doen, maak van elke datarowcategory lekker een eigen table. KISS anyone?
Gaat niet, ik weet niet welke categories er zijn en binnen x tijd wil de klant er zelf kunnen bijvoegen zonder te programmeren.
Killemov schreef op dinsdag 28 september 2010 @ 02:50:
OF, de HELE file als een clob opnemen en Java-side interpreteren.

Hier moet ook wel even bij vermelden dat postgres csv native ondersteunt: http://www.postgresql.org/docs/8.2/static/sql-copy.html Dus ... zit je al aan een DBMS vast? >:)
Hmmm... dat kan misschien nog wel ja :o


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee