[英]Best way to store values related to columns of a mysql table?
如果问题不清楚,请道歉。 不解释就很难传达。 所以我从 mysql 数据库动态获取表数据,并在我的前端 React 应用程序中使用它。 在我的前端,我有一个包含对象的列数组。 每个 object 都有不同的属性,如标题、字段、类型、隐藏等……这些对象中的每一个都代表一列及其相关设置。 我已经动态地获取了列名,并且我知道如何获取类型,但我不确定如何存储 boolean 设置,例如可编辑、过滤和隐藏。
我想可能将它们存储在 JSON 配置文件中,或者创建一个单独的表来存储每列的所有设置。
//use map function to create columns from column_fields in props
const columns2 = props.column_fields.map(column_name => {
return (
//TODO: correctly configure all attributes
{title:column_name, field:column_name, type:'string', editable:'true', filtering:'true', editable:'true', hidden:'false'}
)
})
像这样的东西
const props = { column_fields: ["id", "name", "age"] };
const column_settings = {
id: {
type: "string",
editable: true,
filtering: true,
editable: true,
hidden: false
},
name: {
type: "string",
editable: true,
filtering: true,
editable: true,
hidden: false
},
age: {
type: "number",
editable: true,
filtering: true,
editable: true,
hidden: false
}
};
//use map function to create columns from column_fields in props
const columns2 = props.column_fields.map(column_name => {
return (
//TODO: correctly configure all attributes
{
title: column_name,
field: column_name,
...column_settings[column_name]
}
);
});
因此,如果有人偶然发现这一点,我只需使用 JSON 文件来存储我需要的有关特定表列的所有信息,例如:
{
"table1": {
"id": {
"type": "numeric",
"hidden": false,
"filtering": true,
"editable": "never"
},
"name": {
"type": "string",
"hidden": false,
"filtering": true,
"editable": null
},
},
"table2": {
"phone": {
"type": "string",
"hidden": false,
"filtering": true,
"editable": null
},
"age": {
"type": "numeric",
"hidden": false,
"filtering": true,
"editable": null
}
}
}
我在服务器端 php 中获取此文件并将所有内容发送到我的前端。 现在我可以通过我的 React 项目中的 props 访问值。
//use map function to create columns from column_fields in props
let i = 0;
let columns = props.column_fields.map(column => {
i++;
if (column.field != 'updated_at') {
return ({
title: column.field, field: column.field, type: props.column_fields[i - 1].type, editable: props.column_fields[i - 1].editable,
filtering: props.column_fields[i - 1].filtering, hidden: props.column_fields[i - 1].hidden
})
}
})
希望这种方法能长期有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.