我正在开发一个PHP应用程序,它有几个可以评论的对象.每个评论都可以投票,用户可以给它+1或-1(如Digg或Reddit).现在我正计划有一个带有user_id和投票信息的"投票"表,这似乎工作正常.
问题是,每个对象都有数百条注释存储在单独的注释表中.加载评论后,我必须统计选票,然后单独检查每个投票对用户,以确保他们只能投票一次.这可行,但看起来真的是数据库密集型 - 很多只是评论的查询.
是否有一种更简单的方法可以减少数据库密集度?我目前的数据库结构是最好的方法吗?
要更清楚当前的数据库结构:
评论表:
投票表:
最终目标:
我正在使用示例 with-redux-persist 存储库与此处找到的 next.js 配对: https: //github.com/vercel/next.js/tree/canary/examples/with-redux-persist
使用自定义加载组件时,向 URL 添加查询参数(即 )?test=123会导致页面无限期地挂起加载。控制台中没有报告任何错误,并且 redux 状态信息看起来很干净。
这是我_app.js用来测试的:
import { useStore } from '../store'
import { Provider } from 'react-redux'
import { persistStore } from 'redux-persist'
import { PersistGate } from 'redux-persist/integration/react'
export default function App({ Component, pageProps }) {
const store = useStore(pageProps.initialReduxState)
const persistor = persistStore(store)
return (
<Provider store={store}>
<PersistGate loading={<div>Loading</div>} persistor={persistor}>
<Component {...pageProps} />
</PersistGate>
</Provider>
)
}
Run Code Online (Sandbox Code Playgroud)
您可以通过克隆上面的存储库,修改_app.js为上面的样子,使用yarn dev启动服务器,然后最后访问http://localhost:3000/?test=123.
任何有关为什么会发生这种情况的帮助或见解都将受到赞赏!