Wie zu analysieren, bestehen bleiben und eine Zeichenfolge mit Tags durch Leerzeichen getrennt abrufen?

StackOverflow https://stackoverflow.com/questions/245654

  •  05-07-2019
  •  | 
  •  

Frage

Meine Datenbank besteht aus drei Tabellen (eine für alle Elemente zu speichern, eine für die Tags, und eine für die Beziehung zwischen den beiden):

Tabelle Post Spalten: PostID, Name Beschr

Tabelle: Tag Spalten: TagID, Name

Tabelle: PostTag Spalten: PostID, TagID

Was ist der beste Weg, um einen Raum getrennten Zeichenfolge (beispielsweise „intelligenten lustigen wunderbar“) in die 3-Datenbank-Tabellen oben gezeigt zu speichern?

Letztendlich würde ich muss auch die Tags abrufen und wieder als String angezeigt werden soll. Dank!

War es hilfreich?

Lösung

Grob gesagt, so etwas wie folgt aus:

class Post {
    static hasMany [tags:Tag]
}

class Tag {
    static belongsTo = Post
    static hasMany [posts:Post]
}

class someService {

    def createPostWithTags(name, desc, tags) {      
        def post = new Post(name: name, desc: desc).save()
        tags.split(' ').each { tagName ->
            def tag = Tag.findByName(tag) ?: new Tag(name: tagName)
            post.addToTags(tag).save()
        }       
    }

}

Andere Tipps

Wenn Sie einen Tag Tabelle haben, würden Sie nicht haben eine Zeile für jeden Tag?

tag.id = 1; tag.name = 'smart'
tag.id = 2; tag.name = 'funny'
tag.id = 3; tag.name = 'wonderful'

In Groovy / Grails, können Sie sie als eine Liste abrufen würde, möglicherweise sie in eine durch Leerzeichen getrennte Liste für die Anzeige verketten.

Es sei denn, ich bin wirklich die Frage Missverständnis, Groovy / Grails / GORM wird damit umgehen mit wenig oder gar keinem Code mit den Standard-Gerüsten, ohne wirkliche Codierung erforderlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top