Grails: बहुत-से-कई बिना कई है/हैटेम-बजाय देशी 3NF का उपयोग कर-पूर्ण पाठ खोजना



many-to-many normalization (0)

मैं 3 एनएफ़ का इस्तेमाल करते हुए कई गांवों में कई मानचित्रणों को लागू कर रहा हूं, का उपयोग नहीं हैमाइंड या संबंधितटो गुण

इस लेख से लिया गया यह दिखाता है और अपने फायदे के बारे में बहुत कुछ बताता है।

अनुच्छेद: http://burtbeckwith.com/blog/?p=169

प्रस्तुति नोट: http://burtbeckwith.com/blog/files/169/gorm%20grails%20meetup%20presentation.pdf

मैं एक टैग सिस्टम बनाने के लिए प्रश्नों पर कोशिश कर रहा हूं, इस प्रकार की तरह (स्टैकवरफ्लो :))

मैं प्रश्न और टैग को बचा सकता हूं, फिर उनके साथ संबद्धता को सहेज सकते हैं, लेकिन अब मैं खोज करने और टैग के साथ एक पूर्ण प्रश्न को पूरा करने में सक्षम होना चाहता हूं,

मेरे पास 3 डोमेन वर्ग - प्रश्न, टैग और प्रश्नटैग हैं I

class Question {

  String title
  String content
  Date createdAt
  String tags

  static transients = ['tags']

}

टैग क्लास

class Tag {

    String name

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

प्रश्नटाग कक्षा

 class QuestionTag implements Serializable{

  Question question
  Tag tag

  static mapping = {
    table 'question_tags'
    version false
    id composite: ['question', 'tag']
  }

ये 3 सामान्यीकृत रूप में 3 तालिकाओं का उत्पादन करते हैं

कार्य सहेजना, प्रश्न और टैग की संख्या

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) 
}

प्र .1 मैं "टैग" के अपने सेट के साथ "प्रश्न" कैसे लोड कर सकता हूँ? अगर प्रश्न के साथ जुड़े 5 टैग थे।

अब मैंने "खोज" प्लगइन स्थापित किया है, मैंने सभी तीन वर्गों के लिए "स्थिर खोज योग्य = सच" को लागू किया है। लेकिन जब मैं उस संपत्ति को प्रश्नटैग वर्ग में जोड़ता हूं, तो मैं त्रुटियों को संकलित कर लेता हूं, सोच की "हैमनी" की कमी के साथ क्या करना है

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

प्र .2। अगर मैं "हैमॅनी" जोड़ता हूं तो यह एक अन्य तालिका अंडर-हूड के साथ उत्पन्न करेगा, फिर भी मैंने अपना खुद का निर्धारण किया है। या यह मेरे प्रश्नटैग तालिका को संदर्भित करेगा जो मैंने बनाया है?

प्र .3 3 एनएफ का उपयोग करना वैसे भी मैं टैग और प्रश्न पूर्ण पाठ की खोज कर सकता हूँ, फिर खोजशब्दों से संबंधित प्रश्न वापस करें, जो टैग या पाठ से मेल खाते हैं