满口金牙 2021-11-03 17:28 采纳率: 91.5%
浏览 55
已结题

后端处理, mysql 用户自定义表格的操作,问题讨论!

我现在都是 django 里写好 models 然后,同步生成 mysql 数据表
然后再根据不同的 数据表, 写视图函数 等等

** 现在问题, 如果用户需要自定义表格(自定义字段名,自定义列数),咋整? 用户不可能 去后端写models**
我现在有两个思路,就瞎想,抛砖引圡

一,在django 里 编个 能自动生成 models 的代码,
前端传过指令,自动成生 models, 并同步生成 mysql表格
这好象有些挑战, 相关 路由,视图函数, 等代码都要自动生成
可能还有安全问题,相当于客户直接写了一个代码在后端上

第二个解决思路:
我的所有表格,只建二个 fields, Id, content,
在content 这字段里存 { name:'', age:"} , 这样的对象
前端根据对象的 key 来生成可视化Html表格字段, 用户可以对key进行增删改,
但是这又有一个问题,用户不可能要所有的数据,**
查询过滤 有一个效率问题, 要把所以的 对象都拿出来, 然后遍历里面的 key, value 值,

实际开发中,遇到这个问题,一般是怎么个处理?

请朋友给个好的建议

  • 写回答

1条回答 默认 最新

  • 七号公园的忧伤 Java领域新星创作者 2021-11-03 22:57
    关注

    我理解你说的自定义列。就比如一个人又很多属性。又名字、性别。然后用户通过前端页面再添加别的属性。
    一般解决思路:用两张表。一张表A存储userId,id 表示用户插入的数据。另外一张表A_id,keyname, value。
    比如A:{id:1, userId:123} B:[{A_id:1, keyname:name, value:zhangsan}, {A_id:1, keyname:sex, value:男},{A_id:1, keyname:age, value:19}]
    类似这种,相当于纵表,平时使用都是横表

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 修改了问题 11月3日
  • 创建了问题 11月3日

悬赏问题

  • ¥30 vmware exsi重置后的密码
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面