scala-dbc

33 views
Skip to first unread message

Mikael StÄldal

unread,
Mar 21, 2011, 4:43:48 AM3/21/11
to scala-...@googlegroups.com
I Scala-distributionen sÄ finns det en fil scala-dbc.jar som innehÄller paketet scala.dbc.

Vad Àr detta? Var hittar man dokumentation över detta?

--
Mikael StÄldal
Senior Software Engineer
Appear Networks
Tel: +46 8 545 91 370


John Nilsson

unread,
Mar 21, 2011, 8:22:36 AM3/21/11
to scala-...@googlegroups.com, Mikael StÄldal
Ett deprecated databas API?

http://scala.sygneca.com/libs/dbc
http://www.scala-lang.org/api/2.7.0/scala/dbc$package.html

Antar att du fÄr motsvarande funktionallitet via nÄgot av
http://squeryl.org/
http://www.sts.tu-harburg.de/people/mi.garcia/ScalaQL/
http://scalaquery.org/

Hittade Àven en trevlig lista pÄ
http://stackoverflow.com/questions/1362748/wanted-good-examples-of-scala-database-persistence

Av de ramverk jag kÀnner till sÄ tycker jag ScalaQL verkar vara
"rÀtt"-lösning. Men jag har ingen aning om hur mycket utveckling det
sker pÄ den fronten.

Mvh,
John

2011/3/21 Mikael StÄldal <mikael....@appearnetworks.com>:

> --
> Det hÀr meddelandet skickas till dig eftersom du prenumererar pÄ gruppen
> scala-sverige i Google Groups.
> Om du vill göra ett inlÀgg i den hÀr gruppen skickar du e-post till
> scala-...@googlegroups.com.
> Om du vill sluta prenumerera pÄ den hÀr gruppen skickar du e-post till
> scala-sverig...@googlegroups.com.
> För fler alternativ, besök gruppen pÄ
> http://groups.google.com/group/scala-sverige?hl=sv.
>

√iktor Klang

unread,
Mar 21, 2011, 8:30:18 AM3/21/11
to scala-...@googlegroups.com, John Nilsson, Mikael StÄldal
Det beror iofs pÄ, jag rekommenderar att man undviker ORM-approachen som pesten.

2011/3/21 John Nilsson <jo...@milsson.nu>



--
Viktor Klang,
Code Connoisseur
Work:   Scalable Solutions
Code:   github.com/viktorklang
Follow: twitter.com/viktorklang
Read:   klangism.tumblr.com

John Nilsson

unread,
Mar 21, 2011, 8:37:05 AM3/21/11
to √iktor Klang, scala-...@googlegroups.com, Mikael StĂ„ldal
Om man kan... ;-)

Mvh,
John

2011/3/21 √iktor Klang <viktor...@gmail.com>:

Henrik Johansson

unread,
Mar 21, 2011, 9:06:57 AM3/21/11
to scala-...@googlegroups.com, John Nilsson, Mikael StÄldal
Jag har fastnat för ScalaQuery, Àven om det inte Àr precis som jag vill ha det. Det Àr mycket ORM-fluff och DDL-generering i det, men det riktigt smaskiga Àr att jobba direkt med tupler mot databasen:

val kundId = 3
val kunder:List[(String,String)] = db withSession {
   query[Int,(String,String)]("""SELECT fornamn, efternamn FROM kunder WHERE id = ?""") (kundId) list
}

/Henrik

2011/3/21 John Nilsson <jo...@milsson.nu>



--
t.  +46 707 - 45 53 90

Olle Kullberg

unread,
Mar 22, 2011, 4:23:12 AM3/22/11
to scala-...@googlegroups.com, Henrik Johansson, John Nilsson, Mikael StÄldal
Vi kör Querolous vilket Àr mycket lÀttviktigt. TyvÀrr bygger Querolous pÄ Scala 2.7, sÄ i ren desperation gjorde jag en usel fork för Scala 2.8: https://github.com/ollekullberg/querulous-light
-------------------

This is a fork of Querulous-generic (Querulous-generic is in turn a fork of the Twitter version). This fork will:

  • Work on Scala 2.8
  • Work on all RDBMs (Well, I've only tried H2, so I do not really know)
  • Not have any dependencies to Twitters StandardProject module.

The more advanced features (timeout and so on) probably don't work, since I had to smash some code to get here.

-------------------

/0113

2011/3/21 Henrik Johansson <hen...@gmail.com>

Mats Henricson

unread,
Mar 22, 2011, 4:51:39 AM3/22/11
to scala-...@googlegroups.com
Jobbigt lÀge att behöva vÀlja, kÀnns det som. Ska försöka göra lite mer research.

Mats

2011/3/22 Olle Kullberg <olle.k...@gmail.com>

Mats Henricson

unread,
Mar 22, 2011, 9:38:07 AM3/22/11
to scala-...@googlegroups.com, Henrik Johansson, John Nilsson, Mikael StÄldal
Tog en titt pÄ syntaxen för ScalaQuery, och tyckte den avskrÀckte en del.

Men det Àr nog bara jag.

Mats

2011/3/21 Henrik Johansson <hen...@gmail.com>

Henrik Johansson

unread,
Mar 22, 2011, 9:57:05 AM3/22/11
to Mats Henricson, scala-...@googlegroups.com, John Nilsson, Mikael StÄldal
Tittar man paa hur ScalaQuerys author vill att man anvÀnder det haaller jag med dig fullstÀndigt. Det Àr just StaticQuery som Àr godbiten (se mitt exempel.). 

- Men det hör till historien att jag Àr allergisk mot att anvÀnda dassiga query-spraak (HQL/JPAQL mfl.) och DSLer (ScalaQuery, Squeryl).

I mitt exempel anvÀnder jag hederlig SQL och kan sjÀlv mappa tupler till Case Classes.

/Henrik

2011/3/22 Mats Henricson <mats.he...@gmail.com>

anpeo

unread,
Dec 1, 2011, 2:21:53 AM12/1/11
to scala-...@googlegroups.com, John Nilsson, Mikael StÄldal
Runt mig tala det mycket om ORM och hur bra det Àr dock i en C# vÀrld, skulle vara snÀllt om du kunde berÀtta varför du gÀrna undviker det
Àr det en Scala sak eller nÄgot rent generelllt. ?
/A

Joakim Ohlrogge

unread,
Dec 1, 2011, 2:32:16 AM12/1/11
to scala-...@googlegroups.com

+1

Joakim Ohlrogge

unread,
Dec 1, 2011, 3:11:23 AM12/1/11
to scala-...@googlegroups.com

Snabbt pÄ gÄende fot frÄn mobilen.

Mina tvÄ senaste kunder har haft problem med just orm. Detta Àr i java och i det ena talet i kombination med Scala men problemen fanns redan med bara java.

En orm löser som jag ser det tvÄ saker.

1. Databasoberoende (nÄja. NÀstan )
2. Sql Àr svÄrt
(off by One: man vill alltid knöka in data i en domÀnmodell som fÄr se ut hur den vill sÄ lÀnge man slipper skapa objekten sjÀlv)

1: problemet försvinner inte. Det Àndrar form. Och handen pÄ hjÀrtat. Hur ofta byter man egentligen?
2: orm Àr ocksÄ svÄrt. Det Àr minst lika svÄrt att bli tillrÀckligt bra pÄ hibernate som att bli tillrÀckligt bra pÄ sql . LÀr man sig sql sÄdan man hantera alla relarionsdatabaser lÀr man sig hibernate kan man... Hibernate  och man behöver sannolikt kunna sql ÀndÄ.
Just nu jobbar jag med att snabba upp rapporter som mina föregÄngare lÀmnat efter sig. De befintliga rapporterna tar samtliga mellan 45 minuter och 12 timmar. Oftast runt 5 timmar. VÄra "optimerade " rapporter mellan 45s och 10min.
Och dÄ Àr jag inte ens bra pÄ sql.

Dock har det inte alltid varit smÀrtfritt att göra optimeringen. Om man arbetat i 5 Är med enl mönstret: sköt upp en tÄngruska ur orm och rensa den med java sÄ upptÀcker man dÄ man ska skriva sql mot dbn  att modellen lÀmpar sig bÀttre att lagra objekt i Àn att stÀlla frÄgor mot.
Vi har fÄtt ta till diverse bricka tricks som joins mot temporÀra tabeller innehÄllande unionen av 5 andra tabeller.

Slutsats: jag vet inte om en orm löser nÄgot problem som Àr vÀrt att lösa men jag skulle kunna prata i timmar om vilka de skapar och hur man fastnar i den sÀmsta av tvÄ vÀrldar

Ps blir man riktigt vass pÄ orm sÄ ser det ut som om man kan fÄ Àgna sig Ät att lösa riktiga problem som att skriva ett sprÄk för jvmen som "vanliga" utvecklare förstÄr:ceylon ds

--
Det hÀr meddelandet skickas till dig eftersom du prenumererar pÄ gruppen scala-sverige i Google Groups.
Om du vill visa den hÀr diskussionen pÄ webben besöker du https://groups.google.com/d/msg/scala-sverige/-/cYMp9Rc5HQsJ.

Mikael StÄldal

unread,
Dec 1, 2011, 3:20:15 AM12/1/11
to scala-...@googlegroups.com
2011/12/1 Joakim Ohlrogge <joakim....@agical.com>

En orm löser som jag ser det tvÄ saker.

1. Databasoberoende (nÄja. NÀstan ) 

1: problemet försvinner inte. Det Àndrar form. Och handen pÄ hjÀrtat. Hur ofta byter man egentligen?

Om man bygger en produkt som olika kunder anvÀnder med olika relationsdatabaser sÄ Àr databasoberoende vÀldigt viktigt.

--
Mikael StÄldal

Senior Software Engineer

Appear

Kista Science Tower
164 51 Kista
Sweden
Phone: + 46 (0)8 545 91 572
Mobile: + 46 (0)70 1479581
Email: mikael.staldal@appearnetworks.com

Visit us at: www.appearnetworks.com



Joakim Ohlrogge

unread,
Dec 1, 2011, 3:22:20 AM12/1/11
to scala-...@googlegroups.com
DĂ„ vet man vilket problem man försöker lösa med en ORM. Är en ORM det lĂ€ttaste sĂ€ttet att lösa det problemet och Ă€r man medveten om vilka andra problem man skaffar sig?
-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
Twitter: @johlrogge
E-mail: joakim....@agical.se


2011/12/1 Mikael StÄldal <mikael....@appearnetworks.com>

--
Det hÀr meddelandet skickas till dig eftersom du prenumererar pÄ gruppen scala-sverige i Google Groups.

√iktor Ҡlang

unread,
Dec 1, 2011, 3:33:25 AM12/1/11
to scala-...@googlegroups.com
CQRS + ES

2011/12/1 Joakim Ohlrogge <joakim....@agical.com>



--
Viktor Klang

Akka Tech Lead
Typesafe - Enterprise-Grade Scala from the Experts

Twitter: @viktorklang

Olle Kullberg

unread,
Dec 1, 2011, 3:38:30 AM12/1/11
to scala-...@googlegroups.com
NÄgot som jag har funderat pÄ en tid Àr att faktiskt börja anvÀnda ORM (trots mitt initiala motstÄnd). Anledningen Àr CQRS. En mycket enkel variant av CQRS skulle vara att anvÀnda ORM för triviala operationer (typ CRUD) och JDBC för icke-triviala sql, dÀr man i det generella fallet har tvÄ databaser optimerade för transaktioner resp analys.

Men, hÀr funderar jag pÄ om man inte lika gÀrna kan köra MongoDB istÀllet för ORM för triviala operationer, och JDBC för icke-trivial sql?

Vad tror ni?

2011/12/1 Joakim Ohlrogge <joakim....@agical.com>

√iktor Ҡlang

unread,
Dec 1, 2011, 3:52:45 AM12/1/11
to scala-...@googlegroups.com


2011/12/1 Olle Kullberg <olle.k...@gmail.com>

NÄgot som jag har funderat pÄ en tid Àr att faktiskt börja anvÀnda ORM (trots mitt initiala motstÄnd). Anledningen Àr CQRS. En mycket enkel variant av CQRS skulle vara att anvÀnda ORM för triviala operationer (typ CRUD) och JDBC för icke-triviala sql, dÀr man i det generella fallet har tvÄ databaser optimerade för transaktioner resp analys.

Men, hÀr funderar jag pÄ om man inte lika gÀrna kan köra MongoDB istÀllet för ORM för triviala operationer, och JDBC för icke-trivial sql?

Absolut, att hÄlla pÄ med ORM nÀr man lika gÀrna kan köra Salat + Mongo blir ju bara konstigt.
DÀremot rekommenderar jag definitivt ES dÄ man oftare Àndrar sin aggregatmodell Àn man Àndrar innehÄllet i sina affÀrshÀndelser.

Cheers,
√
 



--

Joakim Ohlrogge

unread,
Dec 1, 2011, 3:54:17 AM12/1/11
to scala-...@googlegroups.com
mongo + JDBC funkar ju om man inte vill köra de triviala operationerna pÄ samma data som de avancerade operationerna (?)

Att blanda JDBC och orm Àr precis vad vi gör hÀr. Vi försöker strypa ut ORM:en helt enkelt. Dock fÄr man vara lite försiktig. Om man bara lÀser med JDBC sÄ gÄr det sÀkert bra (om man vet att cachear Àr flushade innan man frÄgar). Skriver man vid sidan av med JDBC sÄ kan man behöva anvÀnda lite annorlunda tricks för att cachaer och dylikt ska invalideras.

Personligen Àr det inte nÄgot jag skulle ge mig in i frivilligt men jag Àr nog lite av ett brÀnt barn...

-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
Twitter: @johlrogge
E-mail: joakim....@agical.se


2011/12/1 Olle Kullberg <olle.k...@gmail.com>

John Nilsson

unread,
Dec 1, 2011, 3:55:21 AM12/1/11
to scala-...@googlegroups.com, Mikael StÄldal

Oj gammal trÄd ! :)

Min erfarenhet Àr att ORM:er dels abstraherar bort sÄ mycket av den rationella modellen och den underliggande databasen att du tappar det det mesta den kan erbjuda. Varför backa din modell rationellt om du ÀndÄ inte drar nytta av det? Dels sÄ tvingar de in objekt-modellen i ett datacentrikt perspektiv vilket gör att du samtidigt tappar möjligheten och nyttan med en objektorienterad modell.

Resultatet ORM blir dÀrför bara mappning, vilket bara Àr kostnad.

Eventsourcing och CQRS verkar erbjuda ett alternativ som jag hÄller pÄ att utvÀrdera för tillfÀllet. Du fÄr frÄga igen om ett Är sÄ skall vi se om jag reviderat min stÄndpunkt ;)

MVH,
John

Joakim Ohlrogge

unread,
Dec 1, 2011, 3:57:38 AM12/1/11
to scala-...@googlegroups.com, Mikael StÄldal
Åh vad bra formulerat!

-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
Twitter: @johlrogge
E-mail: joakim....@agical.se


2011/12/1 John Nilsson <jo...@milsson.nu>

√iktor Ҡlang

unread,
Dec 1, 2011, 4:09:40 AM12/1/11
to scala-...@googlegroups.com, Mikael StÄldal


2011/12/1 Joakim Ohlrogge <joakim....@agical.com>
Åh vad bra formulerat!

Johnny Àr rÀtt badass.
 

Olle Kullberg

unread,
Dec 1, 2011, 4:15:21 AM12/1/11
to scala-...@googlegroups.com
För CRUD-operationer funkar allt: ORM, Relationsmodell, Dokumentmodell...

@Joakim Om man för över data kontinuerligt frÄn en dokumentdatabas till en analysdatabas (ES) sÄ fÄr man nÀstan samma data. Man mÄste nog rÀkna med att analysdatabasen ligger nÄgra millisekunder efter (vilket kan ge fel). 

/olle

2011/12/1 √iktor Ҡlang <viktor...@gmail.com>

Peter Lundberg

unread,
Dec 1, 2011, 4:37:11 AM12/1/11
to scala-...@googlegroups.com

+1 för abstraktionsproblemet som John beskrev!

Jag har Ă€ven en komplexitetsvy pĂ„ det: Även om allt fungerar för CRUD, tycker jag att man skall man beakta hur mycket komplexitet man drar in i sin lösning och inte falla för “golden hammer” anti-pattern.

Och dĂ„ menar jag inte bara den komplexitet man skriver sjĂ€lv, orm med annoteringar ser förföriskt enkelt ut, utan mest hur mĂ„nga lager teknologi och rader kod och beroenden som man plockar in för att lösa problemet. Denna dolda komplexitet Ă€r nĂ„got jag tycker mĂ„nga inte ser eller tar hĂ€nsyn till – tar man in teknologin skall man underhĂ„lla den över tiden och den skall funka. NĂ€r den inte fungerar mĂ„ste de som vidareutvecklaresystemet kunna felsöka och förstĂ„ den, Ă€ven om nĂ„gra Ă„r. Jfr en klassisk orm strack (spring + hibernate + cache + jdbc driver + RDBMS + filsystem) med enkla filer (java.io + filsystem) med nĂ„gon nosql (driver + enkla operationer + filsystem). Storleken pĂ„ ens lib katalog i drift Ă€r ett grovt men intressant mĂ„tt.

Mvh
Peter


On 11-12-01 10:15 , "Olle Kullberg" <olle.k...@gmail.com> wrote:

För CRUD-operationer funkar allt: ORM, Relationsmodell, Dokumentmodell...

@Joakim Om man för över data kontinuerligt frÄn en dokumentdatabas till en analysdatabas (ES) sÄ fÄr man nÀstan samma data. Man mÄste nog rÀkna med att analysdatabasen ligger nÄgra millisekunder efter (vilket kan ge fel). 

/olle

2011/12/1 √iktor Ҡlang <viktor...@gmail.com>


2011/12/1 Joakim Ohlrogge <joakim....@agical.com>
Åh vad bra formulerat!

Johnny Àr rÀtt badass.
 

-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004 <tel:%2B46-708-754004>
Blog: johlrogge.wordpress.com <http://johlrogge.wordpress.com>
Twitter: @johlrogge
E-mail: joakim....@agical.se


2011/12/1 John Nilsson <jo...@milsson.nu>

Henrik Johansson

unread,
Dec 1, 2011, 8:20:53 AM12/1/11
to scala-sverige
+1

ORMerna lovade databasoberoende och att man skulle slippa skriva SQL
och slippa mappa sina objektstrukturer.

* Numera har vi insett att de inte ger databasoberoende (queries som
fungerar olika). LÄtsas du att stöder alla databaser mÄste du ocksÄ
testa det. DÄ börjar det kosta.
* SQL Àr inte svÄrt, det Àr dÀremot kraftfullt och tydligt. Ofta blir
det merjobb för att fÄ sin ORM att stÀlla rÀtt SQL-frÄga. Resultatet
blir att jag mÄste hantera bÄde SQL och en ORM.
* Objektstrukturer: Det Àr ju trots allt bara data och operationer.
MÄste det vara ett objekt? HÀmta datan, visa den, manipulera den nÀra
databasen istÀllet. Ofta har vi rader av data i databasen, vi mappar
dem till objekt, och visar rader av data pÄ en webbsida. - Vad tillför
objektmappningen till lösningen?
* Om du skall testa dina queries inuti din IDE, vad Àr enklast att
sÀtta upp och testa: Mappade hibernate-objekt eller ett JDBC-anrop?

Henrik Johansson

On 1 Dec, 10:37, Peter Lundberg <peter.lundberg...@gmail.com> wrote:
> +1 för abstraktionsproblemet som John beskrev!
>
> Jag har Ă€ven en komplexitetsvy pĂ„ det: Även om allt fungerar för CRUD,
> tycker jag att man skall man beakta hur mycket komplexitet man drar in i sin
> lösning och inte falla för “golden hammer” anti-pattern.
>
> Och dÄ menar jag inte bara den komplexitet man skriver sjÀlv, orm med
> annoteringar ser förföriskt enkelt ut, utan mest hur mÄnga lager teknologi
> och rader kod och beroenden som man plockar in för att lösa problemet. Denna
> dolda komplexitet Ă€r nĂ„got jag tycker mĂ„nga inte ser eller tar hĂ€nsyn till –
> tar man in teknologin skall man underhÄlla den över tiden och den skall
> funka. NÀr den inte fungerar mÄste de som vidareutvecklaresystemet kunna
> felsöka och förstÄ den, Àven om nÄgra Är. Jfr en klassisk orm strack (spring
> + hibernate + cache + jdbc driver + RDBMS + filsystem) med enkla filer
> (java.io + filsystem) med nÄgon nosql (driver + enkla operationer +
> filsystem). Storleken pÄ ens lib katalog i drift Àr ett grovt men intressant
> mÄtt.
>
> Mvh
> Peter
>

> On 11-12-01 10:15 , "Olle Kullberg" <olle.kullb...@gmail.com> wrote:
>
>
>
>
>
>
>
> > För CRUD-operationer funkar allt: ORM, Relationsmodell, Dokumentmodell...
>
> > @Joakim Om man för över data kontinuerligt frÄn en dokumentdatabas till en
> > analysdatabas (ES) sÄ fÄr man nÀstan samma data. Man mÄste nog rÀkna med att
> > analysdatabasen ligger nÄgra millisekunder efter (vilket kan ge fel).
>
> > /olle
>

> > 2011/12/1 √iktor Ҡlang <viktor.kl...@gmail.com>
>
> >> 2011/12/1 Joakim Ohlrogge <joakim.ohlro...@agical.com>


> >>> Åh vad bra formulerat!
>
> >> Johnny Àr rÀtt badass.
> >>
>
> >>> -----------------------------------------------------
> >>> Joakim Ohlrogge
> >>> Agical AB
> >>> VÀsterlÄnggatan 79, 2 tr
> >>> 111 29 Stockholm, SWEDEN
>
> >>> Mobile: +46-708-754004 <tel:%2B46-708-754004>
> >>> Blog: johlrogge.wordpress.com <http://johlrogge.wordpress.com>
> >>> Twitter: @johlrogge

> >>> E-mail: joakim.ohlro...@agical.se
>
> >>> 2011/12/1 John Nilsson <j...@milsson.nu>


>
> >>>> Oj gammal trÄd ! :)
>
> >>>> Min erfarenhet Àr att ORM:er dels abstraherar bort sÄ mycket av den
> >>>> rationella modellen och den underliggande databasen att du tappar det det
> >>>> mesta den kan erbjuda. Varför backa din modell rationellt om du ÀndÄ inte
> >>>> drar nytta av det? Dels sÄ tvingar de in objekt-modellen i ett datacentrikt
> >>>> perspektiv vilket gör att du samtidigt tappar möjligheten och nyttan med en
> >>>> objektorienterad modell.
>
> >>>> Resultatet ORM blir dÀrför bara mappning, vilket bara Àr kostnad.
>
> >>>> Eventsourcing och CQRS verkar erbjuda ett alternativ som jag hÄller pÄ att
> >>>> utvÀrdera för tillfÀllet. Du fÄr frÄga igen om ett Är sÄ skall vi se om jag
> >>>> reviderat min stÄndpunkt ;)
>
> >>>> MVH,
> >>>> John
>

Joakim Ohlrogge

unread,
Dec 1, 2011, 8:29:14 AM12/1/11
to scala-...@googlegroups.com
Den mest eleganta "mappningen" jag sett hittills Àr en lösning dÀr en klass (tex User) mostvarades av ett paket i oracle (tex PK_User). En operation pÄ objektet motsvarades av en stored proceduere (tex PK_ADD). Innan jag arbetade med en lösningen hatade jag stored procedures... efter det kÀnde jag att det var den modellen jag sett som kompromissade minst Ät nÄgot hÄll (OO <-> RDBMS). Storrarna var sÄ att sÀga det integrationslager som brukar göras i XML i ORM-lösningar

Men som sagt, Àr det objekt man vill lagra sÄ erbjuder ju nutidens teknik lite andra lösningar Àn RDBMS.

Intressant trÄd!

-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
Twitter: @johlrogge
E-mail: joakim....@agical.se


2011/12/1 Henrik Johansson <hen...@gmail.com>

John Nilsson

unread,
Dec 1, 2011, 2:15:06 PM12/1/11
to scala-...@googlegroups.com

Ja Oracle stödjer faktiskt förvÄnansvÀrt mycket, det Àr nÀstan som att faktiskt implementerat industrial D!*
Synd  bara att PL/SQL Àr ett sÄ kasst sprÄk.

En annan elegant "mappning" Àr den som F# kommer med i nÀsta release. Type generators kallar de det. Intellisense direkt mot databasen med integrerad kodgenerering pÄ det för att typa resultatet.

Mvh,
John

* Se Third Manifesto

√iktor Ҡlang

unread,
Dec 1, 2011, 2:44:02 PM12/1/11
to scala-...@googlegroups.com


2011/12/1 John Nilsson <jo...@milsson.nu>

Ja Oracle stödjer faktiskt förvÄnansvÀrt mycket, det Àr nÀstan som att faktiskt implementerat industrial D!*

Hahaha, jag kommer ihÄg alla roliga ögonblick du haft roligt med Oracle.
 

Synd  bara att PL/SQL Àr ett sÄ kasst sprÄk.

SprÄket Àr inte lika kasst som runtimen... ;)

 

En annan elegant "mappning" Àr den som F# kommer med i nÀsta release. Type generators kallar de det. Intellisense direkt mot databasen med integrerad kodgenerering pÄ det för att typa resultatet.

Type Providers heter det vÀl?

Cheers,
√
 



--

Joakim Ohlrogge

unread,
Dec 1, 2011, 2:52:40 PM12/1/11
to scala-...@googlegroups.com
Jo, och det Àr nÀstan minst lika förvÄnande hur mycket det Àr som Oracle /inte/ stöder :)

-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
Twitter: @johlrogge
E-mail: joakim....@agical.se


2011/12/1 John Nilsson <jo...@milsson.nu>

John Nilsson

unread,
Dec 1, 2011, 3:17:28 PM12/1/11
to scala-...@googlegroups.com

Ah det gör det nog, my bad.

JodÄ Oracle och jag har haft en och annan dunst ... ;)
Som det ser ut kommer jag nog ha minst lika roligt med MSSQL. NÄja fÄr se om inte RavenDB kan bidra med lite avslappning.

Mvh,
John

√iktor Ҡlang

unread,
Dec 1, 2011, 5:00:33 PM12/1/11
to scala-...@googlegroups.com


2011/12/1 John Nilsson <jo...@milsson.nu>

Ah det gör det nog, my bad.

JodÄ Oracle och jag har haft en och annan dunst ... ;)
Som det ser ut kommer jag nog ha minst lika roligt med MSSQL. NÄja fÄr se om inte RavenDB kan bidra med lite avslappning.

Det jag tycker Àr trist med SQL Àr att frÄgor inte Àr komponeringsvÀnliga, vilket leder till copy-paste-style programmering, vilket Àr svÄrt att underhÄlla.

 

John Nilsson

unread,
Dec 1, 2011, 5:12:33 PM12/1/11
to scala-...@googlegroups.com

Higher order SQL FTW! :-)

Det Àr vÀl dags för en ny standard snart. FÄr se om inte Greg uppfinner nÄgot djÀvulsk smart i sin bok. ;-)

Mvh,
John

Mikael StÄldal

unread,
Dec 2, 2011, 3:36:10 AM12/2/11
to scala-...@googlegroups.com
2011/12/1 Olle Kullberg <olle.k...@gmail.com>

Men, hÀr funderar jag pÄ om man inte lika gÀrna kan köra MongoDB istÀllet för ORM för triviala operationer, och JDBC för icke-trivial sql?

Hur ska det gÄ till? MongoDB stödjer vÀl varken JDBC eller SQL?
 

Mikael StÄldal

unread,
Dec 2, 2011, 3:39:38 AM12/2/11
to scala-...@googlegroups.com
2011/12/1 Henrik Johansson <hen...@gmail.com>

* SQL Àr inte svÄrt, det Àr dÀremot kraftfullt och tydligt. Ofta blir
det merjobb för att fÄ sin ORM att stÀlla rÀtt SQL-frÄga. Resultatet
blir att jag mÄste hantera bÄde SQL och en ORM.

SQL Àr bra för att stÀlla icke-triviala frÄgor. Men om man har tabeller med mÄnga fÀlt sÄ blir det trist och "error-prone" att göra enkel CRUD med SQL.

Henrik Johansson

unread,
Dec 2, 2011, 5:02:22 AM12/2/11
to scala-...@googlegroups.com
2011/12/2 Mikael StÄldal <mikael....@appearnetworks.com>

2011/12/1 Henrik Johansson <hen...@gmail.com>
* SQL Àr inte svÄrt, det Àr dÀremot kraftfullt och tydligt. Ofta blir
det merjobb för att fÄ sin ORM att stÀlla rÀtt SQL-frÄga. Resultatet
blir att jag mÄste hantera bÄde SQL och en ORM.

SQL Àr bra för att stÀlla icke-triviala frÄgor. Men om man har tabeller med mÄnga fÀlt sÄ blir det trist och "error-prone" att göra enkel CRUD med SQL.

Jag hÄller med om att man mÄste hÄlla tungan rÀtt i mun nÀr man mappar fÀlten, men det Àr en enkel uppgift och du betalar bara för den en gÄng. Det Àr enklare att mappa 100 fÀlt manuellt Àn att dra pÄ extra komplexitet, vikt och bytecode-generation. Lösningen mÄste ÀndÄ testas, sÄ blir det fel mÀrker du det pÄ samma vis.

I mina utvecklingsprojekt brukar jag anvÀnda ett ORM-genererat schema för att testa att uppgraderingsscripten resulterar i samma shema som Àr "current". Det Àr nÄgot som jag kommer att sakna utan ORM.

VĂ€nligen,
Henrik Johansson

Mikael StÄldal

unread,
Dec 2, 2011, 5:14:48 AM12/2/11
to scala-...@googlegroups.com
2011/12/2 Henrik Johansson <hen...@gmail.com>

2011/12/2 Mikael StÄldal <mikael....@appearnetworks.com>
2011/12/1 Henrik Johansson <hen...@gmail.com>
* SQL Àr inte svÄrt, det Àr dÀremot kraftfullt och tydligt. Ofta blir
det merjobb för att fÄ sin ORM att stÀlla rÀtt SQL-frÄga. Resultatet
blir att jag mÄste hantera bÄde SQL och en ORM.

SQL Àr bra för att stÀlla icke-triviala frÄgor. Men om man har tabeller med mÄnga fÀlt sÄ blir det trist och "error-prone" att göra enkel CRUD med SQL.

Jag hÄller med om att man mÄste hÄlla tungan rÀtt i mun nÀr man mappar fÀlten, men det Àr en enkel uppgift och du betalar bara för den en gÄng.

Man betalar varje gÄng man Àndrar i databasschemat.

Uppgiften Àr enkel, men repetitiv, trÄkig och "error-prone". AlltsÄ en uppgift som datorer Àr bÀttre pÄ att göra Àn mÀnniskor. För oss som gillar statiskt typade sprÄk Àr det frustrerande att inte fÄ nÄgon hjÀlp av kompilatorn om man stavar nÄgot kolumnnamn fel.

Jag tycker inte det Àr en tillfredstÀllande lösning att göra enkel CRUD manuellt med SQL. Jag skulle vilja ha nÄgon form av mini-ORM som bara hjÀlper till med CRUD, men inte gör allt annat som t.ex. JPA och Hibernate gör.
 

Henrik Johansson

unread,
Dec 2, 2011, 5:25:13 AM12/2/11
to scala-...@googlegroups.com
2011/12/2 Mikael StÄldal <mikael....@appearnetworks.com>
2011/12/2 Henrik Johansson <hen...@gmail.com>
2011/12/2 Mikael StÄldal <mikael....@appearnetworks.com>
2011/12/1 Henrik Johansson <hen...@gmail.com>
* SQL Àr inte svÄrt, det Àr dÀremot kraftfullt och tydligt. Ofta blir
det merjobb för att fÄ sin ORM att stÀlla rÀtt SQL-frÄga. Resultatet
blir att jag mÄste hantera bÄde SQL och en ORM.

SQL Àr bra för att stÀlla icke-triviala frÄgor. Men om man har tabeller med mÄnga fÀlt sÄ blir det trist och "error-prone" att göra enkel CRUD med SQL.

Jag hÄller med om att man mÄste hÄlla tungan rÀtt i mun nÀr man mappar fÀlten, men det Àr en enkel uppgift och du betalar bara för den en gÄng.
Jag tycker inte det Àr en tillfredstÀllande lösning att göra enkel CRUD manuellt med SQL. Jag skulle vilja ha nÄgon form av mini-ORM som bara hjÀlper till med CRUD, men inte gör allt annat som t.ex. JPA och Hibernate gör.

Jag hÄller med dig, det finns definitivt en sweet-spot för en mini-ORM som inte försöker ta över vÀrlden.
 

√iktor Ҡlang

unread,
Dec 2, 2011, 6:55:28 AM12/2/11
to scala-...@googlegroups.com
Neej, inte CRUD, bara C!

2011/12/2 Henrik Johansson <hen...@gmail.com>
--
Det hÀr meddelandet skickas till dig eftersom du prenumererar pÄ gruppen scala-sverige i Google Groups.
Om du vill göra ett inlÀgg i den hÀr gruppen skickar du e-post till scala-...@googlegroups.com.
Om du vill sluta prenumerera pÄ den hÀr gruppen skickar du e-post till scala-sverig...@googlegroups.com.
För fler alternativ, besök gruppen pÄ http://groups.google.com/group/scala-sverige?hl=sv.

Joakim Ohlrogge

unread,
Dec 2, 2011, 7:00:34 AM12/2/11
to scala-...@googlegroups.com
RÀtta mig om jag har fel men brukar inte tex hibernate ha hbm-filer eller anotations dÀr man talar om vilken kolumn som ska in i vilket fÀlt? SÄ den mappningen Àr vÀl lika error prone i xml som i java/scala? 

Dock kan det ju vara kul om man slipper skriva rs.getLong och sÄ som jag löst det nÄgra gÄnger Àr att man ser till att resultatets kolumner har namn som gÄr att mappa direkt mot namn pÄ fÀlt i ett objekt. Tex genom att anvÀnd 'as <namn>'.

SQL:en Àr sÄ att sÀga mappningsfilen. Skulle tabellerna redan ha kolumner med passande namn Àr det ju bara att göra select *

Det Àr ett vÀldigt litet problem som borde ha en vÀldigt liten lösning. Som du skriver, en liten mini-orm, fast jag tycker select syntaxen Àr tillrÀckligt kompakt som mappningssprÄk...


-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
Twitter: @johlrogge
E-mail: joakim....@agical.se


2011/12/2 Henrik Johansson <hen...@gmail.com>
--

Mikael StÄldal

unread,
Dec 2, 2011, 7:06:44 AM12/2/11
to scala-...@googlegroups.com
2011/12/2 Joakim Ohlrogge <joakim....@agical.com>

RÀtta mig om jag har fel men brukar inte tex hibernate ha hbm-filer eller anotations dÀr man talar om vilken kolumn som ska in i vilket fÀlt?

Jo, men det Àr frivilligt, by default antas att fÀltet och kolumen har samma namn.
 
Det Àr ett vÀldigt litet problem som borde ha en vÀldigt liten lösning. Som du skriver, en liten mini-orm, fast jag tycker select syntaxen Àr tillrÀckligt kompakt som mappningssprÄk...

Mappningen mellan fÀlt i Scala och kolumn i DB ska vara helt automatisk, baserad pÄ att de har samma namn.
 

Joakim Ohlrogge

unread,
Dec 2, 2011, 7:16:39 AM12/2/11
to scala-...@googlegroups.com
Jo givet att allt har samma namn Àr det sista att optimera bort

select * from MyType

"select * from " + classOf[MyType].simpleName

typ

def readQuery[T](implicit m:Manifest[T]) = "select * from "+m.erasure.simpleName

eller nÄgot. Dvs, man kan utogenerera defaultfrÄgor och o default inte funkar kan man göra sin mappning som en egen select...

Jaja, kÀnns som att vi börjar krympa ner det man verkligen vill ha till nÄgot ganska litet. Vore kul om den hÀr diskussionen kunde mynna ut i nÄgot git-repo som implementerar denna lilla micro mapper...


/J


-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
Twitter: @johlrogge
E-mail: joakim....@agical.se


2011/12/2 Mikael StÄldal <mikael....@appearnetworks.com>

√iktor Ҡlang

unread,
Dec 2, 2011, 7:29:40 AM12/2/11
to scala-...@googlegroups.com

foo.Bar och baz.Bar clash, sÄ du mÄste göra name-mangling

Joakim Ohlrogge

unread,
Dec 2, 2011, 7:46:11 AM12/2/11
to scala-...@googlegroups.com
Ja i de fall det finns en foo.Bar och en baz.Bar och bÄda mÄste lÀsas frÄn samma databas. Och dÄ kan man ju alltid skriva sin egen lilla SQL/vy/... för att ta hand om de fallen precis som man mÄste skriva sin egen annotering/hbm i hibernate för att ta hand om samma fall.

Dock kan jag inte pÄstÄ att skilja pÄ User och User eller Company och Company Àr ett problem jag stött pÄ jÀtte ofta. Det Àr vÀl antagandet som görs i hibernates default och ett ganska rimligt defaultantagande kan jag tycka sÄ lÀnge man kan hantera de situationer dÄ default inte Àr bra nog. Och det kan man ju med helt vanlig bonn-SQL.

Detta gÀllde ju att inte behöva skriva nÄgon mappning om namnen i databasen mostvarar namnen i koden.

Eller missuppfattade jag det?


-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
Twitter: @johlrogge
E-mail: joakim....@agical.se


2011/12/2 √iktor Ҡlang <viktor...@gmail.com>

√iktor Ҡlang

unread,
Dec 2, 2011, 8:13:48 AM12/2/11
to scala-...@googlegroups.com

klassnamnet innefattar ju paketet. sÄ fort man kortar sÄ skÀr man hörn

Joakim Ohlrogge

unread,
Dec 2, 2011, 8:17:22 AM12/2/11
to scala-...@googlegroups.com
Absolut, jag vidhÄller att hörnen gÄr att skÀra i de allra flesta fall och har man sÀrskilda behov sÄ kan man sköta sin mappning precis lika bra i sql som i HBM. Jag ville bara visa att man kan skapa en lika bra frÄga utifrÄn en typ som hibernate kan skapa Ät mig utan mappning. Jag Àr helt fine med att skriva sql:en.

Eller tycker du att jag kapat nÄgra andra hörn Àn vad tex hibernate gör för att Ästadkomma samma sak?

/J
-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
Twitter: @johlrogge
E-mail: joakim....@agical.se


2011/12/2 √iktor Ҡlang <viktor...@gmail.com>

√iktor Ҡlang

unread,
Dec 2, 2011, 8:21:44 AM12/2/11
to scala-...@googlegroups.com

Absolut, sÄ lÀnge inte Àpplen och pÀron blandas, dvs fail early.

Mikael StÄldal

unread,
Dec 2, 2011, 8:34:12 AM12/2/11
to scala-...@googlegroups.com
2011/12/2 Joakim Ohlrogge <joakim....@agical.com>

Jo givet att allt har samma namn Àr det sista att optimera bort

select * from MyType

"select * from " + classOf[MyType].simpleName

typ

def readQuery[T](implicit m:Manifest[T]) = "select * from "+m.erasure.simpleName

eller nÄgot. Dvs, man kan utogenerera defaultfrÄgor och o default inte funkar kan man göra sin mappning som en egen select...

Glöm inte att man behöver INSERT och UPDATE ocksÄ.

Joakim Ohlrogge

unread,
Dec 2, 2011, 8:40:58 AM12/2/11
to scala-...@googlegroups.com
Aldrig update :P

Man kan argumentera för att insert och update Àr en helt annan best och kanske inte hanteras bÀst av samma sak som hanterar read men... insert och update kan du vÀl ocksÄ fÄ i micromappern :) ... (kÀnns som om den börjar ringas in av den delen av scalaquery som Henrik Johansson talade sig varm om tidigare i trÄden)

Àh, screw it, kör pÄ map's som i clojure. Vad ska vi med objekt till egentligen... :)




-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
Twitter: @johlrogge
E-mail: joakim....@agical.se


2011/12/2 Mikael StÄldal <mikael....@appearnetworks.com>
2011/12/2 Joakim Ohlrogge <joakim....@agical.com>

Mats Henricson

unread,
Dec 2, 2011, 9:06:05 AM12/2/11
to scala-...@googlegroups.com
VMD + KDVLMT ?

Mats

2011/12/1 √iktor Ҡlang <viktor...@gmail.com>
CQRS + ES


2011/12/1 Joakim Ohlrogge <joakim....@agical.com>
DĂ„ vet man vilket problem man försöker lösa med en ORM. Är en ORM det lĂ€ttaste sĂ€ttet att lösa det problemet och Ă€r man medveten om vilka andra problem man skaffar sig?

-----------------------------------------------------
Joakim Ohlrogge
Agical AB
VÀsterlÄnggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
Twitter: @johlrogge
E-mail: joakim....@agical.se



2011/12/1 Mikael StÄldal <mikael....@appearnetworks.com>
2011/12/1 Joakim Ohlrogge <joakim....@agical.com>
En orm löser som jag ser det tvÄ saker.

1. Databasoberoende (nÄja. NÀstan ) 

1: problemet försvinner inte. Det Àndrar form. Och handen pÄ hjÀrtat. Hur ofta byter man egentligen?

Om man bygger en produkt som olika kunder anvÀnder med olika relationsdatabaser sÄ Àr databasoberoende vÀldigt viktigt.

--
Mikael StÄldal

Senior Software Engineer

Appear

Kista Science Tower
164 51 Kista
Sweden
Phone: + 46 (0)8 545 91 572
Mobile: + 46 (0)70 1479581
Email: mikael.staldal@appearnetworks.com

Visit us at: www.appearnetworks.com



--
Det hÀr meddelandet skickas till dig eftersom du prenumererar pÄ gruppen scala-sverige i Google Groups.
Om du vill göra ett inlÀgg i den hÀr gruppen skickar du e-post till scala-...@googlegroups.com.
Om du vill sluta prenumerera pÄ den hÀr gruppen skickar du e-post till scala-sverig...@googlegroups.com.
För fler alternativ, besök gruppen pÄ http://groups.google.com/group/scala-sverige?hl=sv.

--
Det hÀr meddelandet skickas till dig eftersom du prenumererar pÄ gruppen scala-sverige i Google Groups.
Om du vill göra ett inlÀgg i den hÀr gruppen skickar du e-post till scala-...@googlegroups.com.
Om du vill sluta prenumerera pÄ den hÀr gruppen skickar du e-post till scala-sverig...@googlegroups.com.
För fler alternativ, besök gruppen pÄ http://groups.google.com/group/scala-sverige?hl=sv.
--
Viktor Klang

Akka Tech Lead
Typesafe - Enterprise-Grade Scala from the Experts

Twitter: @viktorklang

Mikael StÄldal

unread,
Dec 2, 2011, 9:07:12 AM12/2/11
to scala-...@googlegroups.com
2011/12/2 Joakim Ohlrogge <joakim....@agical.com>

Aldrig update :P

Man kan argumentera för att insert och update Àr en helt annan best och kanske inte hanteras bÀst av samma sak som hanterar read men... insert och update kan du vÀl ocksÄ fÄ i micromappern :) ... (kÀnns som om den börjar ringas in av den delen av scalaquery som Henrik Johansson talade sig varm om tidigare i trÄden)

Jag skulle sÀga att UPDATE och INSERT Àr viktigast, för det Àr det som Àr jobbigast att göra manuellt. Och sÄ vill man ju gÀrna att de Àr i sync med SELECT.

Àh, screw it, kör pÄ map's som i clojure. Vad ska vi med objekt till egentligen... :)

I ett statiskt typat sprÄk som Scala sÄ riskerar man ju missa en del av typsÀkerheten om man bara kör med map's.

√iktor Ҡlang

unread,
Dec 2, 2011, 9:19:40 AM12/2/11
to scala-...@googlegroups.com
INSERT och SELECT Àr det enda som Àr absolut nödvÀndigt.

2011/12/2 Mikael StÄldal <mikael....@appearnetworks.com>
--
Det hÀr meddelandet skickas till dig eftersom du prenumererar pÄ gruppen scala-sverige i Google Groups.
Om du vill göra ett inlÀgg i den hÀr gruppen skickar du e-post till scala-...@googlegroups.com.
Om du vill sluta prenumerera pÄ den hÀr gruppen skickar du e-post till scala-sverig...@googlegroups.com.
För fler alternativ, besök gruppen pÄ http://groups.google.com/group/scala-sverige?hl=sv.

Olle Kullberg

unread,
Dec 2, 2011, 9:21:28 AM12/2/11
to scala-...@googlegroups.com
"Aldrig UPDATE" ??

Förtydligande: Jag tror att det herrarna menar med att man inte ska köra UPDATE Àr att man kan göra INSERT istÀllet varje gÄng man uppdaterar, fast man har en högre version pÄ aggregatet. Sen nÀr man gör SELECT sÄ vÀljer man helt enkelt den version som Àr högst. 

/o!!e

2011/12/2 Mikael StÄldal <mikael....@appearnetworks.com>

Olle Kullberg

unread,
Dec 2, 2011, 9:24:11 AM12/2/11
to scala-...@googlegroups.com
DÀremot mÄste man ha DELETE, annars bryter man mot PUL. (SkÀrpning Viktor :-) 

2011/12/2 Olle Kullberg <olle.k...@gmail.com>

Orjan Lundberg

unread,
Dec 2, 2011, 9:35:57 AM12/2/11
to scala-...@googlegroups.com
Man bryter inte bara mot PUL, det finns ju en hel bunt lagar att ta hÀnsyn tll. 

NÄgon annan hÀr som jobbar med Erwin modeller och har 10 talet olika sprÄk och skumma 4gl apps som kör mot er databas och krav pÄ att databasen skall leva en produktlivscykel pÄ 40 Är? 

Sen olle: Jag antar att det Àr Polisen Àr nog de som gallrar sina register sÀmst av alla. 

NÄgon annan som har sett detta med SLICK som verkar vara pÄ G: 

M9GZo.png



Örjan 

2011/12/2 Olle Kullberg <olle.k...@gmail.com>



--
... -.-. .- .-.. .- / .-. ..- .-.. . ...
Orjan Lundberg Phone: +46 702528977  ,SKYPE: orjan_lundberg

√iktor Ҡlang

unread,
Dec 2, 2011, 9:44:54 AM12/2/11
to scala-...@googlegroups.com

man behöver inte ha det i API:et, man kan ha delete som management i datastoren

John Nilsson

unread,
Dec 2, 2011, 2:15:04 PM12/2/11
to scala-...@googlegroups.com

Men om man bara kör enkel CRUD varför blanda in en relationel databas?

Sen Àr det kanske symtom pÄ nÄgot annat att ha sÄ mÄnga Àndringar i en update att man har svÄrt att fÄ rÀtt pÄ det.

Mvh,
John

Olle Kullberg

unread,
Dec 3, 2011, 4:22:12 PM12/3/11
to scala-...@googlegroups.com
Jag tror att de flesta applikationer Àr 85% CRUD och 15% avancerade operationer. Anledningen att man traditionellt har anvÀnt relationsdatabaser Àr för att klara av de dÀr sista 15%, plus att databasen Àven anvÀnds som DW (i de fall man inte haft budget för ett separat DW).

/o!!e

2011/12/2 John Nilsson <jo...@milsson.nu>

John Nilsson

unread,
Dec 3, 2011, 7:26:56 PM12/3/11
to scala-...@googlegroups.com

Been there. Done that. TÀnker inte sÀtt mig i den sitsen igen. De dÀr sista 15% behöver ÀndÄ sÄ mycket speciallösningar för att funka att det inte spelar nÄgon roll att det sker i samma databas. Det lilla man möjligtvis underlÀttar Àts mÄngfallt upp av komplexiteten i att underhÄlla ett antal villt skillda modeller och systemkomponenter i samma datstruktur.

Mvh,
John

Reply all
Reply to author
Forward
0 new messages