› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
sunmoon1983
V2EX  ›  MySQL

自定义表单在数据库中要怎么储存?

  •  
  •   sunmoon1983 · Oct 26, 2023 · 3194 views
    This topic created in 1078 days ago, the information mentioned may be changed or developed.

    目前的一个需求就是要用自定义表单收集数据!

    这个需求还行,表结构是这样的

    CREATE TABLE "t_fields" (
        "id" int(11) NOT NULL,
        "unique_mark" VARCHAR(32 byte) NOT NULL,    -- 唯一标识,32 位
        "sorted" INT4 NOT NULL,                     -- 核心字段,排序标识
        "content" TEXT NULL,                        -- 真实的内容,这里考虑到字段长度无法确定,只有用 text 来规定
        "deleted" TINYINT(1) NULL DEFAULT 0,        -- 软删除标识
        "table_name" varchar(32) NOT NULL
    }
    
    

    现在就是设计到收集数据这里,还要涉及到统计、报表、图标,这张表不知道怎么设计了,请大佬指教!

    10 replies  •  2023-10-27 12:45:37 +08:00
    mightybruce
        1
    mightybruce  
       Oct 26, 2023   ❤️ 1
    mysql 5.7 以上 支持 json 类型,要么这种自定义结构存类型
    要不使用 meta 元数据表和字段

    你可以看看 wordpress 的表结构是如何扩展的
    https://codex.wordpress.org/Database_Description
    nice2cu
        2
    nice2cu  
       Oct 26, 2023
    text 改成 json 吧 不然不好做搜索,但是要支持搜索还是得用 es ck 啥的
    NewYear
        3
    NewYear  
       Oct 26, 2023
    我接触过的无代码平台,每个自定义表单都有自己的数据表,表单的内容和表单里的多行数据,都有单独的数据表和字段,表和字段的名称在生成后是固定的,虽然栏位的名称可以修改但其实改的是备注,有一个表专门记录每个表单的结构。后续出报表啥的也很简单。

    你想搞一个统一的表,不是不可以,只是效率太低了。
    maocat
        4
    maocat  
       Oct 26, 2023 via iPhone
    我选择 mongodb
    ZGame
        5
    ZGame  
       Oct 26, 2023
    @nice2cu 正解
    sunmoon1983
        6
    sunmoon1983  
    OP
       Oct 26, 2023
    @NewYear 关键是字段不固定呀
    NewYear
        7
    NewYear  
       Oct 26, 2023
    @sunmoon1983

    唉,你还是只想着偷懒,内容都不仔细看一下,这样做不成的。

    每增加一个自定义表单,自动增加一个数据库表(按序号 001 、002 ),每个表单增加一个明细表(表单内的子表,可以编号为 001-1,001-2 等等)增加一个数据库表。

    每个栏位一个字段(同样是 001 、002 、003 ),数字、字符串、日期这些任何数据库都内置了,上传文件/枚举/字典的你存个 ID ,文件相关信息你建一个总表。

    然后你再建一个表,存放每个表单的主表是哪个、明细表有哪些,每个字段的栏位名称是什么。其他信息你也可以存。

    别想着全部存一个表里,性能是问题,写统计的时候更难。

    其他的自己想吧,这些都有成熟的方案了,你可以去下载个别人的开源程序看一看就知道了。

    如果还是看不懂,就忽略吧,当我没说。
    sunmoon1983
        8
    sunmoon1983  
    OP
       Oct 26, 2023
    @NewYear 好的,谢谢,我仔细研究一下
    xuanbg
        9
    xuanbg  
       Oct 26, 2023
    json
    julyclyde
        10
    julyclyde  
       Oct 27, 2023
    如果需要有“某字段=某个值”这种搜索,就不适宜把附加属性压扁成字符串了,还是应该结构化保存
    可以试试 json 类型字段,或者是把附加属性按照“外键 ID 、字段名字、字段值”写成附加属性表
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5748 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 120ms · UTC 07:11 · PVG 15:11 · LAX 00:11 · JFK 03:11
    ♥ Do have faith in what you're doing.