基于React+Laravel栈的数据库记录字段存储方案选型咨询
数据库记录创建/编辑字段集合的存储方案选择
需要确定用于数据库记录创建/编辑的字段集合(名称与数据类型)的存储位置。
![Admin Panel]
我的项目基于React、Redux-Toolkit(createSlice)、Postgres、Laravel技术栈开发。
相关代码片段如下:
return editMode // 创建与编辑窗口 ? <Layout direction="column" className="edit_mode"> <ShowEditInfo/> <TextField label="标题" name="title" // value={editingProd.title} // onChange={handlePostFields} /> <TextField label="描述" name="body" type="textarea" rows={3} cols={50} // value={editingProd.body} // onChange={handlePostFields} /> <Button label="发布" disabled={disTempPost} onClick={onUpdateButton} /> </Layout> // 后台管理页 : <Layout direction="column" className="admin_table"> <Table zebraStriped="odd" // activeRow={{id: selectedItem}} onCellClick={onCellClick} rows={products} columns={columns} borderBetweenColumns borderBetweenRows emptyRowsPlaceholder={onEmptyTable} /> <TableFooter products={products} table={table} CountAmountOfPosts={CountAmountOfPosts} isDisableButton={isDisableButton} loading={loading} limit={limit} handleSelect={handleSelect} /> </Layout>
以下是几种可选方案:
- 前端React中存储(按标签页单独存储):所有用户(包括非管理员)都会加载字段集合,会产生额外流量。优点是实现简单;缺点是无法同步服务器端变更,比如新增字段后前端不会自动更新。
- 服务器端存储,仅管理员授权后前端加载:难度中等。优点是无需修改前端即可变更字段配置,减少前端更新频率;缺点是服务器端变更无法同步数据库的变更,新增字段不会自动更新数据集。
- 数据库存储字段元数据,实现自适应算法:把所有字段的类型、值等集合存在数据库中。优点是任何变更都会同步到前端,新增必填字段不会引发错误;缺点是实现难度大、开发成本高,对小型项目不划算,会占用大量开发时间。
- 暂不处理,纳入升级计划:优点是营造项目持续开发的假象;缺点是显得开发者不专业,未完成必要的基础工作。
内容的提问来源于stack exchange,提问作者Kirill Bogomolov
相关产品推荐
相关产品推荐

