nuxt.js & daisyUI & DrizzleORM & PlanetScale初探

太困难了,nuxt3好奇怪,数据库也连不上,暂时放弃了
过段时间换一个数据库用用,比如说vercel的postgres
2023/6/10已换vercel,好用,可能planetscale用错了之前,下次再试一下
next.js
- react
- webpack
nuxt.js
- vue
- vite
一大问题是我不太会sql,得摸着石头过河了,先想想数据结构应该是什么样的
Article Table Id Link Title Date
Comment Table Id Article Id Content Reply Comment Id
索引:在comment表中创建适当的索引,以加快对评论的查询速度。例如,可以在article_id列上创建索引,以便根据文章快速检索相关评论。
数据库分区:根据需要,可以考虑对comment表进行水平分区。这意味着将comment表分成多个独立的分区,每个分区存储特定范围的评论。这样可以将数据分散到不同的物理存储设备上,提高查询性能。
maybe i should use nosql for this app? No, I will practice sql!
CREATE TABLE Article ( id INT PRIMARY KEY, link VARCHAR(255), date DATE, title VARCHAR(255) );
CREATE TABLE comment ( id INT PRIMARY KEY, article_id INT, content TEXT, parent_id INT, reply_comment_ids VARCHAR(255), user_id INT, vote INT );
如果你希望实现父评论跟踪其所有子评论的关系,可以考虑以下两种常用的方法:
嵌套集模型(Nested Set Model):该模型使用左右值(Left and Right Values)来表示层次结构。每个评论都有一个左值和一个右值,用于定义它在树形结构中的位置。通过使用左右值,可以轻松地查询父评论及其所有子评论。这种模型对于频繁的读取操作非常高效,但对于频繁的写入和更新操作可能会复杂一些。
this is not good for this project i think
first i will get all article_id comment
then i need to get the real nested order
the most expensive thing is update the order
ALTER TABLE comment ADD COLUMN user_id INT; ADD COLUMN vote INT;
不用nuxt content,用vercel的情况下的坏处
- 要连db
- 其他人无法通过pr来贡献项目
- 连接数据库的api设计需要注意,暴露api接口给图谋不轨的人将导致数据库坏掉
- 紧接着上面一条,解决方法是增加用户认证,又是非常麻烦的
好处:
- db比markdown可灵活多了
- 我能够学到很多,如果真的能做出来
不用vercel,用nuxt connect的坏处
- markdown不灵活,很多功能搞不了(很大的坏处
- 已经做出来了,没什么新东西,和next contentlayer差不多
好处:
- 其他人无需登录即可修改内容,只需pr即可