redis - 如何设计“多对一”在非关系型数据库
ringa_lee
ringa_lee 2017-04-21 11:16:51
0
3
920

现在存文章内容用hash类型:

post:$post_id
    title,
    content
    ...

comment:$comment_id
    content,
    date,
    status

posts:
    $post_id, $comment_id

存了一个hash类型的posts来表示关系,可能是还是没摆脱关系型数据库。

这种“一对多”的模式,如何在redis上更合理……更redis的体现出来.
应该如何设计这里

ringa_lee
ringa_lee

ringa_lee

membalas semua(3)
伊谢尔伦

NoSQL jarang menyokong sepenuhnya fungsi Sertai, jadi bentuk nyahnormal biasanya digunakan untuk menyimpan perhubungan yang dikembangkan dalam NoSQL, jadi perhubungan itu bukan lagi "banyak-dengan-satu" tetapi "satu-ke-banyak".

Anda boleh menggunakan jenis koleksi untuk menyimpan subdokumen, seperti senarai atau ditetapkan dalam Redis, sub-dokumen dalam MongoDB, dsb.

Untuk NoSQL, terdapat prinsip mudah, iaitu menyatukan perkara yang berkaitan, seperti artikel dan ulasan, jika boleh, cuba letakkan semua atribut, termasuk kandungan, artikel dan ulasan, bukannya Simpan sahaja id komen dalam rekod artikel.
Kelebihan ini adalah jelas. Anda hanya memerlukan satu operasi baca untuk mendapatkan semua data yang berkaitan dengan artikel ini Tidak kira bagaimana anda membahagikan data, artikel dan perkara yang berkaitan tidak akan dipisahkan ke dalam mesin fizikal yang berbeza cekap. Sangat meningkatkan kebolehskalaan bahagian belakang.
Sudah tentu, reka bentuk sedemikian mungkin tidak selalu sesuai untuk aplikasi anda Contohnya, hubungan antara artikel dan pengarang mungkin tidak boleh didenormailkan sepenuhnya, jadi anda perlu mempertimbangkan kaedah dan proses pembentangan data dengan teliti untuk memutuskan cara menyusun data.

Ringkasnya, NoSQL bukan ubat penawar Walaupun ia memberikan fleksibiliti, skalabiliti dan prestasi yang lebih tinggi, ia juga memudahkan pangkalan data kotak hitam asal ke dalam enjin penyimpanan kotak putih Anda perlu mempertimbangkan pelbagai faktor sendiri titik keseimbangan yang paling sesuai, kerja ini memang memerlukan banyak pengalaman dan pemahaman yang mendalam tentang perniagaan.

Sudah tentu, ini tidak menjadi masalah jika jumlah data adalah kecil.

阿神

Gunakan senarai?

巴扎黑

Bolehkah anda menggunakan set sahaja? Letakkan id ulasan dalam post_id: set.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan