关于数据导入的解决方案设计

leonbingo leonbingo 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
各位,最近要做一个数据采集和导入的系统,通常特定的数据导入相对比较简单,我这里的想法就是,我们能否设计一个中间的通用的数据库结构,我这里有一个初步的草稿,

首先,我要定义一个实体,比如说,一本书,一个学生,类似于这样,
然后,我为这个实体定义属性,比如,书有多少页,学生多大年龄这样

那么定义出来的表就成了这样

/****** 实体属性表 ******/
CREATE TABLE [dbo].[EntityProperty](
[Id] [int] IDENTITY(1,1) NOT NULL,
[EntityId] [int] NOT NULL,
[Type] [int] NOT NULL,
[Name] [nvarchar](60) NOT NULL,
[Alias] [nvarchar](60) NULL,
[Description] [nvarchar](200) NULL,
[CreatedOn] [date] NOT NULL,
[UpdatedOn] [date] NULL,
CONSTRAINT [PK_EntityProperty] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** 实体表 ******/

CREATE TABLE [dbo].[Entity](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](60) NOT NULL,
[Description] [nvarchar](200) NULL,
[CreatedOn] [date] NOT NULL,
[UpdatedOn] [date] NULL,
CONSTRAINT [PK_Entity] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

/****** 属性值表 ******/
CREATE TABLE [dbo].[PropertyValue](
[Id] [int] IDENTITY(1,1) NOT NULL,
/****** 这个Identity是用来区分一个实体的标示符的,比如说,一个学生的ID,这样我就能取得所有该学生的所有属性 ******/
[PropertyIdentity] [nvarchar](64) NOT NULL,
[PropertyId] [int] NOT NULL,
[Value] [nvarchar](4000) NOT NULL,
CONSTRAINT [PK_PropertyValue] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO



这样的话就可以动态的定义列了,而不用每次新来一个实体,我们就要为之建立一个固定的表,但是这里也有一个问题,我们需要对实体进行查询,这个查询我就一下子不知道怎么弄了,因为现在的存储结构是一行一个属性,另外我这种设计,也比较好进行逻辑上的导入,比如我可以建立一个关系,某某属性,要导入到目标数据库表中的某某字段

因为我对数据库研究不多,请各位帮忙看看,这个解决方案的优点和缺点,另外,如果有更好的方案麻烦告知,分不够可另开贴给分,原则就是,动态(不用来了新的数据结构就要建表),方便导入目标数据库。
...全文

相关推荐

面试题:百万数据的导入导出解决方案,怎么设计?

附上GitHub地址:GitHub地址上教程和说明很详细,并且附带有读和写的demo代码,这里对它的介绍我就不再详细说了。至于EasyExcel底层怎么实现的这个还有待研究。这次工作中遇到的问题也给我留下了深刻印象,同时也是我职业生涯添彩的一笔。最起码简历上可以写上你处理过上百万条数据的导入导出。最后说一下公司之前怎么做的,公司之前做法是。

xuxu1116

优化数据导入速度:使用myloader替代MySQL

综上所述,通过使用myloader作为MySQL数据导入的替代方案,我们可以显著提高数据导入的速度。传统上,MySQL是一个常用的关系型数据库管理系统,但在处理大规模数据导入时,它可能遇到性能瓶颈。它专注于提供快速而稳定的导入性能,并优化了导入过程中的内部机制。除了提供快速的数据导入速度,myloader还具有其他一些有用的功能。例如,它可以实现增量导入,只导入新增的数据,而不是全量导入。在这个命令中,“-c"选项用于指定配置文件的路径,”-d"选项指定要导入的数据库名称,"-o"选项指定导入数据的目录。

ThDebug

AI大模型开发V2第四阶段 PyTorch框架使用配套代码

AI大模型开发V2第四阶段 PyTorch框架使用【配套代码】

FBI HackerHarry浩

PHP后端开发Laravel与ThinkPHP框架实战及Web安全防护VIP技术手册

本手册为一份完整的 PHP 后端开发与安全实战 Word 文档(.docx,可编辑,约 6500 字正文 + 13 幅原创配图),内容涵盖:PHP 8.x 环境搭建与 Composer 工程化、Laravel 10 博客系统完整开发(建模、认证、CRUD、测试)、ThinkPHP 6 RESTful API 开发(验证器、Token 认证、限流、统一响应)、Symfony 6.4 微服务架构与 Docker 部署、SQL 注入/XSS/CSRF/文件上传五大漏洞原理与修复、HTTPS 与 AES-256-GCM 加密存储、OPcache/Redis/负载均衡性能调优,以及上线前安全检查清单与命令速查附录。 适用人群:PHP 初学者、全栈开发者、准备面试或项目实战的后端工程师、需要进行安全加固的运维与开发人员。 使用场景及目标:从零搭建可运行的博客/API 项目,掌握主流框架开发流程,建立完整的 Web 安全防护与性能优化知识体系,可直接作为团队培训教材或上线评审 checklist 使用。

云博士的AI课堂

超扭滑模与快速终端滑模的永磁同步电机无感控制:理论、离散化实现与仿真研究(Simulink仿真实现)

内容概要:本文系统研究了超扭滑模控制(STSMC)与快速终端滑模控制(FTSMC)在永磁同步电机(PMSM)无感控制中的应用,深入探讨了两种先进非线性控制策略的理论基础、离散化实现方法及Simulink仿真实验。文章重点分析了基于高频信号注入法的PMSM零低速无位置传感控制技术,有效解决了传统物理传感器难以安装或成本高昂场合下的转子位置与速度估算难题。通过构建高阶滑模控制器与磁链无感观测器,实现了对电机状态的精确估计与鲁棒控制,显著提升了系统在动态响应、抗外部干扰和稳态精度方面的综合性能。研究涵盖控制算法设计、离散化处理、抖振抑制策略以及仿真验证全过程,为高性能、高可靠性电机驱动系统的设计提供了完整的理论支撑与实践范例。; 适合人群:具备自动控制理论、现代电机控制技术基础,熟悉MATLAB/Simulink仿真环境,并从事电气传动、新能源汽车、工业自动化、航空航天等领域的高校研究生、科研人员及工程技术人员。; 使用场景及目标:①研究和设计无需位置传感器的永磁同步电机控制系统,降低系统成本与维护难度;②深入掌握超扭滑模与快速终端滑模控制算法的核心原理、稳定性分析方法及其在数字控制器中的离散化实现技术;③利用Simulink搭建完整的电机控制仿真平台,验证先进滑模控制策略在不同工况下的有效性、鲁棒性与动态性能;④为高精度伺服系统、电动汽车电驱系统、轨道交通牵引系统等对可靠性和性能要求严苛的应用场景提供先进的无感控制解决方案。; 阅读建议:建议读者结合文中提供的Simulink仿真模型与相关参考文献,深入理解滑模控制的设计思想、切换函数构造原则与控制器参数整定方法,重点关注滑模观测器的设计流程与抖振抑制技术(如引入边界层或高阶滑模),同时可通过仿真对比不同控制策略的性能差异,并进一步拓展至其他先进非线性控制策略(如自适应滑模、模糊滑模)的研究与对比实验。

荔枝科研社
评论 4
收藏 已收藏
分享
返回顶部
leonbingo
应用实例 27,579 成员 68,540 内容