grails many-to-many normalization tagging 3nf

Grails: Many-to-Many sin hasMany/belongsTo-en lugar de utilizar native 3NF-Búsqueda de texto completo



normalization tagging (0)

Estoy implementando un mapeo many-to-many en griales usando 3NF, sin usar la propiedad hasMany o belongsTo.

Tomado de este artículo muestra y explica bastante sobre sus ventajas.

Artículo: http://burtbeckwith.com/blog/?p=169

Notas de la presentación: http://burtbeckwith.com/blog/files/169/gorm%20grails%20meetup%20presentation.pdf

Estoy tratando de hacer un sistema de etiquetas en las preguntas, algo así como (stackoverflow :))

Puedo guardar la Pregunta y las Etiquetas, luego guardar la asociación con ellos, pero ahora quiero poder buscar y enviar una Pregunta completa con Etiquetas,

Tengo 3 clases de dominio: pregunta, etiqueta y QuestionTag

class Question { String title String content Date createdAt String tags static transients = [''tags''] }

Tag Class

class Tag { String name static constraints = { name(blank: false, maxSize: 40) name(unique: true) } }

Clase QuestionTag

class QuestionTag implements Serializable{ Question question Tag tag static mapping = { table ''question_tags'' version false id composite: [''question'', ''tag''] }

Estos producen 3 tablas, en 3 formas normalizadas

Guardar trabajos, una pregunta y una cantidad de etiquetas.

def question = new Question() question.properties = params question.save() def tags = question.tags tags.split('' '')?.each { tagName -> Tag tag = Tag.findByName(tagName) ?: new Tag(name: tagName).save() QuestionTag questionTag = new QuestionTag(question: question, tag: tag) QuestionTag.save(flush: true) }

Q.1 ¿Cómo puedo cargar una "Pregunta" junto con su conjunto de "Etiquetas"? si había 5 etiquetas asociadas con la pregunta.

Ahora que instalé el complemento "buscable", apliqué el "static searchable = true" a las tres clases. pero obtengo errores de compilación cuando agrego esa propiedad a la clase QuestionTag, pensando que tiene que ver con la falta de "hasMany",

No converter defined for type [com.app.Question]

Q.2 Si agrego "hasMany" generará otra tabla debajo del capó, sin embargo, he definido el mío. ¿O hará referencia a mi tabla QuestionTag que hice?

Q.3 Usar el 3NF de todos modos puedo buscar etiquetas y preguntas de texto completo, luego devolver las preguntas asociadas con las palabras clave de búsqueda que coinciden con etiquetas o texto.