2012-02-01 2 views
0

Я начинаю разработку Grails. Я хочу создать новое простое приложение MySQL CRUD, в котором есть повторяющиеся поля. Теперь я не уверен, как должен выглядеть мой домен. Скажем, у меня есть 3 поля в моем домене:Области, обрабатывающие область Grails, повторяемость

String term 
String synonym 
String author 

Я хочу, чтобы автора и/или синоним повторяемое: правильный способ продолжить, чтобы сделать два новых класса домена синонима и автор, и поместить это в моей исходной области :

static hasMany = [synonym: Synonym] 
static hasMany = [author: Author] 

Мне кажется Grails бы более умный способ сделать это, но, может быть, я просто ожидал слишком много ..

+0

Что вы делаете, выглядит правильно. Хотя, не уверен, что вы подразумеваете под «повторяемостью». –

+0

действительно синоним и автор идут вместе? – hvgotcodes

+0

С повторяемостью я имею в виду, что мне нужно иметь возможность создавать записи, такие как: term = donkey, synonym = horse, synonym = ass, author = author1, author = author2, author = author3 – joskes

ответ

0

что вы называете «повторяемые» обычно называют одно- to-many отношение. В одном термине есть много авторов и много синонимов.

До сих пор, что вы делаете, выглядит правильно.

Хотя я хотел бы предложить назвать hasMany декларации в множественном виде, как они проводят многократные Synonyms/Authors:

static hasMany = [synonyms: Synonym] 
static hasMany = [authors: Author] 

Как следствие hasMany определения вы также должны думать о другой стороне отношений. У автора также может быть много терминов (многие-ко-многим). Для синонима вы должны оценить, хотите ли вы повторно использовать один и тот же синоним для нескольких терминов или если он обозначает только один единственный член (один-ко-многим или много-ко-многим).

+0

ok спасибо за ясный ответ и за указание на меня к соотношению «один ко многим». Нашел учебник для того, чтобы делать то, что я хочу http://omarello.com/2010/08/grails-one-to-many-dynamic-forms/ – joskes

Смежные вопросы