Rumah  >  Soal Jawab  >  teks badan

javascript - Maafkan saya, jika artikel mempunyai berbilang tag dan terdapat berbilang artikel di bawah satu tag, bagaimana untuk mereka bentuk jadual menggunakan mogoose?

Senario penggunaan adalah seperti berikut:

Apabila menerbitkan artikel, tambah tag Terdapat banyak tag dalam artikel,

Kemudian apabila mencari tag, bagaimana untuk menanyakan semua artikel tag ini? ?

Kemudian apakah idea reka bentuk data keseluruhan mongoodb? Tolong beri saya jawapan, thx

给我你的怀抱给我你的怀抱2690 hari yang lalu799

membalas semua(4)saya akan balas

  • phpcn_u1582

    phpcn_u15822017-06-30 09:54:50

    Artikel mengandungi _id, tajuk, tag, kandungan
    Kemudian, tag mengandungi banyak tag

    • _id

    • tajuk

    • tag

      • tag1

      • tag2

      • tag3

    • kandungan

    Anda boleh mereka bentuknya seperti ini
    Anda boleh menulis kaedah untuk mengembalikan semua artikel di bawah tag tertentu

    Post.getTag=function(tag,callback){
        mongodb.open(function(err,db){
            if(err){
                return callback(err);
            }
            db.collection('posts',function(err,collection){
                if(err){
                    mongodb.close();
                    return callback(err);
                }
                collection.find({
                    "tags":tag
                },{
                    "name":1,
                    "time":1,
                    "title":1
                }).sort({
                    time:-1
                }).toArray(function(err,docs){
                    mongodb.close();
                    if(err){
                        return callback(err);
                    }
                    callback(null,docs);
                });
            })
        });
    };

    Kemudian panggilnya di laluan yang sepadan

    balas
    0
  • 習慣沉默

    習慣沉默2017-06-30 09:54:50

    Apabila menyimpan artikel, tambahkan id teg yang sepadan pada tatasusunan tag (kunci asing), dan pada masa yang sama tambahkan id artikel (kunci asing) pada semua teg yang sepadan

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-06-30 09:54:50

    Ini adalah model tipikal banyak-ke-banyak, reka bentuk meja adalah seperti berikut

    Artikel jadual artikel

    CREATE TABLE `article` (
        `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '文章ID',
        `title` varchar(100) NOT NULL DEFAULT '' COMMENT '标题',
        `content` longtext COMMENT '文章内容',
        ...,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB COMMENT='文章表';

    tag tablettag

    CREATE TABLE `tags` (
        `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '标签ID',
        `name` varchar(30) NOT NULL DEFAULT '' COMMENT '标签名',
        PRIMARY KEY (`id`),
    ) ENGINE=InnoDB COMMENT='标签表';

    Jadual persatuan artikel dan tag article_tag

    CREATE TABLE `article_tag` (
        `article_id` int(11) unsigned DEFAULT '0' COMMENT '文章ID',
        `tag_id` int(11) unsigned DEFAULT '0' COMMENT '标签ID',
        KEY `FK_article_tag_tag_id` (`tag_id`),
        KEY `FK_article_tag_article_id` (`article_id`),
        CONSTRAINT `FK_article_tag_article_id` FOREIGN KEY (`article_id`) REFERENCES `article` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
        CONSTRAINT `FK_article_tag_tag_id` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB COMMENT='文章标签表';

    Idea khusus

    • Kaitkan jadual artikel dan jadual tag melalui kekangan kunci asing bagi article_tag

    • Untuk operasi tag artikel, jika tag sudah wujud, anda hanya perlu menambah atau memadam data jadual tag_artikel

    • Jika teg tidak wujud, tambahkan teg dan artikel dahulu, kemudian tambahkan 文章ID<->标签IDdata ke article_tag

    • Jika anda ingin menanyakan semua artikel dalam teg, gunakan jadual article_tag untuk meninggalkan (atau sebaris) jadual artikel

    • Jika anda ingin menanyakan semua teg artikel, gunakan jadual teg_artikel untuk meninggalkan (atau sebaris) jadual teg

    • Dalam dua kes di atas, jika anda masih memerlukan data tag atau artikel, teruskan sahaja ke kiri-menyertai jadual tag atau jadual artikel.

    balas
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-30 09:54:50

    Saya bersetuju dengan penyelesaian di atas Satu jadual untuk artikel, satu jadual untuk tag, dan kemudian buat jadual tag artikel yang sepadan

    balas
    0
  • Batalbalas