目前的一个需求就是要用自定义表单收集数据!
这个需求还行,表结构是这样的
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
}
现在就是设计到收集数据这里,还要涉及到统计、报表、图标,这张表不知道怎么设计了,请大佬指教!
1
mightybruce 2023-10-26 13:32:25 +08:00 1
mysql 5.7 以上 支持 json 类型,要么这种自定义结构存类型
要不使用 meta 元数据表和字段 你可以看看 wordpress 的表结构是如何扩展的 https://codex.wordpress.org/Database_Description |
2
nice2cu 2023-10-26 13:34:28 +08:00
text 改成 json 吧 不然不好做搜索,但是要支持搜索还是得用 es ck 啥的
|
3
NewYear 2023-10-26 17:48:42 +08:00
我接触过的无代码平台,每个自定义表单都有自己的数据表,表单的内容和表单里的多行数据,都有单独的数据表和字段,表和字段的名称在生成后是固定的,虽然栏位的名称可以修改但其实改的是备注,有一个表专门记录每个表单的结构。后续出报表啥的也很简单。
你想搞一个统一的表,不是不可以,只是效率太低了。 |
4
maocat 2023-10-26 18:01:12 +08:00 via iPhone
我选择 mongodb
|
6
sunmoon1983 OP @NewYear 关键是字段不固定呀
|
7
NewYear 2023-10-26 20:58:18 +08:00
@sunmoon1983
唉,你还是只想着偷懒,内容都不仔细看一下,这样做不成的。 每增加一个自定义表单,自动增加一个数据库表(按序号 001 、002 ),每个表单增加一个明细表(表单内的子表,可以编号为 001-1,001-2 等等)增加一个数据库表。 每个栏位一个字段(同样是 001 、002 、003 ),数字、字符串、日期这些任何数据库都内置了,上传文件/枚举/字典的你存个 ID ,文件相关信息你建一个总表。 然后你再建一个表,存放每个表单的主表是哪个、明细表有哪些,每个字段的栏位名称是什么。其他信息你也可以存。 别想着全部存一个表里,性能是问题,写统计的时候更难。 其他的自己想吧,这些都有成熟的方案了,你可以去下载个别人的开源程序看一看就知道了。 如果还是看不懂,就忽略吧,当我没说。 |
8
sunmoon1983 OP @NewYear 好的,谢谢,我仔细研究一下
|
9
xuanbg 2023-10-26 22:03:05 +08:00
json
|
10
julyclyde 2023-10-27 12:45:37 +08:00
如果需要有“某字段=某个值”这种搜索,就不适宜把附加属性压扁成字符串了,还是应该结构化保存
可以试试 json 类型字段,或者是把附加属性按照“外键 ID 、字段名字、字段值”写成附加属性表 |