كيفية تحليل، لا تزال قائمة واسترداد سلسلة مع به مفصولة بمسافات؟
سؤال
وقاعدة بياناتي تتكون من 3 الجداول (واحد لتخزين جميع العناصر، واحدة للعلامات، واحدة للعلاقة بين البلدين):
والجدول: آخر الأعمدة: معرف المشاركة، الاسم، تفاصيل
والجدول: الوسم الأعمدة: TagID، اسم
والجدول: PostTag الأعمدة: معرف المشاركة، TagID
ما هي أفضل طريقة لحفظ سلسلة الفضاء فصل (على سبيل المثال "ذكية مضحك رائعة") في جداول قاعدة البيانات 3 المبينة أعلاه؟
وأخيرا أود أن الحاجة أيضا لاسترداد العلامات وعرضه كسلسلة مرة أخرى. شكرا!
المحلول
وتقريبا، شيء من هذا القبيل:
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()
}
}
}
نصائح أخرى
إذا كان لديك جدول الوسم، لن يكون لديك صف لكل بطاقة؟
tag.id = 1; tag.name = 'smart'
tag.id = 2; tag.name = 'funny'
tag.id = 3; tag.name = 'wonderful'
في رائع / الكؤوس المقدسة، وكنت استردادها على شكل قائمة، وربما وصل بهم إلى قائمة الفضاء فصل للعرض.
وإذا لم أنا سوء الفهم حقا هذا السؤال، سوف رائع / الكؤوس المقدسة / GORM التعامل مع هذا مع رمز ضئيلة أو معدومة مع السقالات افتراضي، لا الترميز الحقيقي المطلوب.