3

私のデータベースは 3 つのテーブルで構成されています (1 つはすべてのアイテムを格納するため、1 つはタグ用、もう 1 つは 2 つの間の関係用です)。

表: 投稿列: PostID、Name、Desc

表: タグ列: TagID、名前

表: PostTag 列: PostID、TagID

上記の 3 つのデータベース テーブルに、スペースで区切られた文字列 (たとえば、"smart funny wonder") を保存する最良の方法は何ですか?

最終的には、タグを取得して、再度文字列として表示する必要もあります。ありがとう!

4

2 に答える 2

4

おおよそ、次のようなものです。

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

}
于 2008-10-29T21:28:22.017 に答える
1

タグ テーブルがある場合、タグごとに行がありませんか?

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

Groovy/Grails では、それらをリストとして取得し、場合によってはそれらをスペースで区切られたリストに連結して表示します。

質問を本当に誤解していない限り、Groovy/Grails/GORM は、デフォルトのスキャフォールディングを使用してコードをほとんどまたはまったく使用せずにこれを処理します。実際のコーディングは必要ありません。

于 2008-10-29T04:06:05.757 に答える