数据库设计规范

数据仓库设计规范文档 数据仓库设计规范文档 版本 更新内容 备注 v1.0 创建文档 2020-08-11 一. 数仓建设 1.1. 数据模型架构规范 分层是为了解决 ETL 任务及工作流的组织、数据的流向、读写权限的控制、不同需求的满足等各类问题。 总体来说,数仓划分为操作数据层、数据仓库层和数据集市层三部分 数据层次的划分 ODS:Operational Data Store,操作数据层,在结构上其与源系统的增量或者全量数据基本保持一致。它相当于一个数据准备区,同时又承担着基础数据的记录以及历史变化。 阅读详情

1.数据库设计规范:

①数据库命名规范:

①所有数据库对象名称必须使用小写字母并用下划线分割

②所有数据库对象名称禁止使用MySQL保留关键字

③数据库对象的命名要能做到见名识意,并且最好不要超过32个字符。例如 用户表:mc_userdb

④临时表必须一tmp为前缀,时间为后缀。

⑤备份库、备份表必须以bak为前缀,日期为后缀

⑥所有存储相同数据的列名和列必须一致

②数据库基本设计规范

①所有的表必须以lnnodb存储引擎。(5.6以后的默认引擎,支持事务,行级锁,更好的恢复性,高并发下性能更好)。

②数据库和表的字符集统一使用UTF8(避免乱码问题)(UTF8字符集汉字占3个字节,ASCII码占有一个字节)。

③所有的表和字段都需要添加注释。(方便以后对数据字典的维护)。

④尽量控制单表数据量的大小,建议控制在五百万以内。(这种限制取决于存储设置和文件系统),尽量做到冷热数据分离,减小表的宽度。减少磁盘IO,保证热数据的内存缓存命中率

⑤禁止在表中建立预留字段

⑥禁止在数据库中存储图片,文件等大的二进制数据

⑦禁止在线上做数据库压力测试

⑧禁止从开发环境,测试环境直连生产环境数据库

 

③ 数据库索引设计规范

①限制每张表上的索引数量,建议单张表索引不超过五个

(索引并不是越多越好,可以降低也可以提高效率。禁止给表中的每一列都建立单独的索引)

②每个Innodb表必须有一个主键(不使用更新频繁的列作为主键,不使用多列主键)

③不使用UUID、MD5、HASH,字符串列作为主键(后面的主键值不一定大于前面的,增加IO操作)

④主键建议使用自增ID值

常见索引列建议:

如何选择索引列的顺序:

 避免建立冗余索引和重复索引:

 对于频繁查询的索引优先考虑覆盖索引:(覆盖索引:包含了所有查询字段的索引)

尽量避免使用外键:

④数据库字段设计规范: 

①优先选择存储需要的最小的数据类型

②避免使用TEXT,BLOB数据类型

③避免使用ENUM数据类型

④尽可能把所有列定义为NOT NULL 

⑤不建议字符串存储日期型数据

⑥使用TIMESTAMP或DATETIME类型存储时间

QI

⑦同财务相关的金额类数据,必须使用decimal类型

 

 ⑤数据库SQL开发规范

①在程序中建议使用预编译语句进行数据库操作

②数据库SQL开发中避免数据类型的隐式转换

 

 ③充分利用表上已经存在的索引

④程序连接不同的数据库使用不同的账号,禁止跨库查询 

⑤禁止使用SELECT *必须使用SELECT<字段列表>查询

 ⑥禁止使用不含字段列表的INSERT语句

错误:

正确:

⑦禁止使用子查询,可以把子查询优化为join操作

⑧避免使用JOIN关联太多的表

 ⑨减少数据库的交互次数

⑩使用in代替or

⑪禁止使用order by rand()进行随机排序

⑫WHERE语句禁止对列进行函数转化和计算

 

⑬在明显不会有重复值是使用UNION ALL 而不是UNION

 

 ⑭拆分复杂的大SQL为多个小SQL

⑥数据库操作行为规范

①超过100万行批量写操作,要分批多次进行写操作

②对于大表使用pt-online-schema-change修改表结构

 

 ③禁止为程序使用的账号赋予super权限

 ④对于程序连接数据库账号,遵循权限最小原则

 

 

 

 

 

 

 

 

数据仓库设计规范 ○ 指标相关: 区分是否可累加指标,比如pv 为可累加指标「尽量控制在15个以内」,uv不可累加指标「尽量控制在5个以内,因为不可累加的指标需要按cube来组合运算」,不算衍生指标。○ 该层为维度数据,维度是对具体分析对象的分析角度,维度要具备丰富的属性,历史信息的可追溯性,对通用的维表要保持一致性,避免维度二义性。○ 按业务主题组织高度汇总数据,产出通用的指标数据,统一指标计算口径和方法,避免指标冗余计算导致数据不一致。○ 该层接收来源不同源的数据,主要分流量日志,业务日志,业务数据,API第三方数据。 阅读详情

相关推荐

数据库设计规范-命名规范.docx

数据库设计规范-命名规范全文共4页,当前为第1页。数据库设计规范-命名规范全文共4页,当前为第1页。数据库设计规范(命名规范) 数据库设计规范-命名规范全文共4页,当前为第1页。 数据库设计规范-命名规范全文共4页,当前为第1页。 1 目的 规范数据库设计。 2 概述 从数据库的设计原则 设计文档几方面论述数据库设计的规范思想及命名规则。 3 数据库应用结构 根据对一般业务系统的分析,将数据库和程序系统统一进行整体描述,展示数据库的 表之间以及与程序模块间的关系。 3.1 数据表和程序模块的分类 根据"处理特点",将数据表和程序模块进行分类如下: 数据表分类:业务数据表、基本编码表、辅助编码表、系统信息表、累计数据表、结 算数据表、决策数据表。 程序模块分类:初始化、业务处理、完整性检测与修正、结算处理、统计处理。 3.1.1 数据表分类说明 业务数据表:记录业务发生的过程和结果。如,合同、出仓单、申请单、凭证。 基本编码表:描述业务实体的基本信息和编码。如,产品、客户、供应商、雇员。 辅助编码表:描述属性的列表值。如,合同类型、职称、民族、付款方式。 系统信息表:存放与系统操作、业务控制有关的参数。如,用户信息、权限、用户配 置信息、成本核算方式。 累计数据表:存放业务的当前值和累计值。如,当前库存、当前存款、累计销售、累 计支出、应收账款。 结算数据表:存放各个时期末的结存数。如,月末库存、月末银行存款、应收账款月 结。 决策数据表:存放各个时期内发生的统计值。如,月销售统计、月回款统计、出入库 统计。 3.1.2 程序模块分类说明 初始化:系统运行前对系统进行数据的初始化。如,库存初始化。 业务处理:业务过程的控制和结果记录。如,合同录入、费用审批、出入库。 完整性检测与修正:对累计数据表进行检查并自动修正。如对当前库存、当前存款、 累计销售的检查和重新计算。 结算处理:计算并记录各个时期末的结存数。库存月结、应收账款月结。 统计处理:计算并记录各个时期内发生的统计数。如,统计月销售、统计月回款、统 计出入库。 3.2 数据表间的关系 业务数据表<-->基本编码表 主-外键关系。如,合同表<-->客户编码表; 业务数据表<-->辅助编码表 主-外键关系。如,合同表<-->付款方式; 业务数据表、累计数据表、结算数据表:累计数据表=结算数据表(上期末) + 业务数 据表(本期内发生)。如当前库存=上月末库存数+(本月入库数-本月出库数); 决策数据表<-->业务数据表 决策数据表的数据是由业务数据表中数据导出(统计)的; 数据库设计规范-命名规范全文共4页,当前为第2页。数据库设计规范-命名规范全文共4页,当前为第2页。3.3 数据表与程序模块间的关系 由一个例子(仓库管理)来说明数据表与程序模块之间的关系: . 系统使用前,由初始化模块对库存数(累计数据表)和上月末库存数(结存数据表)进 行初始化; . 当有入库业务发生时,由入库模块(业务处理)将入库单录入并保存到入库单明细帐( 业务数据表)中,同时将入库数累加到库存数(累计数据表)中; . 定期或不定期,库存数核算模块(检查完整性检测与修正)根据上月末的库存数(结存 数据表)、本月已发生数(业务数据表)检查当前的库存数(累计数据表)是否符合,不符合 则给出提示,可手工或自动进行更正(当前库存数=上月末库存数+本月入库数-本月出库数 ); . 每月初,进行上月的月结处理。月结模块(结算处理)根据上月初的库存数(结存数据 表)、上月发生数(业务数据表)计算出上月末的库存数(累计数据表)。公式为:上月末库 存数=上月初库存数+上月入库数-上月出库数; . 每个月月结后,库存业务月统计模块(统计处理)统计上月的各种库存商品的入库和 出库数,便于查询和生成报表,也作为决策支持的数据基础。 3.4 数据表命名时对数据表分类的考虑 . 业务数据表:t_d_<系统标识>_<表标识>。如销售系统的合同表 t_d_SH_Contract 或 t_d_SH_合同; . 基本编码表:t_b_[<系统标识>]_<表标识>。如客户编码表t_b_Customer 或 t_b_客 户; . 辅助编码表:t_a_[<系统标识>]_<表标识>。如合同类别t_a_ContType 或 t_a_合同 类别; . 系统信息表:t_s_[<系统标识>]_<表标识>。如用户表t_s_User 或 t_s_用户; . 累计数据表:t_t_<系统标识>_<表标识>。如当前库存表t_t_SO_Stock 或 t_t_SO_ 库存; . 结算数据表:t_c_<系统标识>_<表标识>。如库存月结表t_c_SO_StockMonth 或 t_c_SO_库存月结; . 决策数据表:t_w_<系统标识>_<表标识>。如月销售统

MySQL企业使用规范

基础规范 表存储引擎必须使用 InnoDB 表字符集默认使用 utf8,必要时候使用 utf8mb4 通用,无乱码风险,汉字 3 字节,英文 1 字节 utf8mb4 是 utf8 的超集,有存储 4 字节例如表情符号时,使用它 禁止使用存储过程,视图,触发器,Event 对数据库性能影响较大...

LAf_HUAZAI的博客 344

Microapp 接入vite子应用

MicroApp接入vite版本,干货满满,手把手步骤说明,加上报错说明,赶紧上车!

outsider76557的博客 4659

数电发票“乐企直连”服务平台建设方案

数字化电子发票“乐企直连”服务平台建设方案

m0_73174802的博客 4853

别再只会插卡了!用示波器实测SIM卡上电时序与通信波形(附故障排查)

本文深入解析了SIM卡通信的电气信号与时序规则,通过示波器实测波形揭示SIM卡上电时序与通信协议的关键细节。从VCC、CLK、RST、DATA四路信号的协同工作,到ATR(Answer to Reset)的解析,再到常见故障的波形诊断与排查方法,为硬件工程师提供了实用的调试指南。文章还分享了高级调试技巧与现代化工具链搭建建议,帮助提升物联网设备SIM卡通信的可靠性与效率。

weixin_42567279的博客 325

银行数据仓库数据模型设计规范:让数据管理更高效

银行数据仓库数据模型设计规范:让数据管理更高效 【下载地址】银行数据仓库数据模型设计规范 本开源项目深入解析银行数据仓库的数据模型设计规范,提供从概念模型到物理模型的完整设计指南。概念模型阶段聚焦主题划分,帮助清晰组织数据;逻辑模型阶段细化主题,归纳总结关键数据点;物理模型阶段则实现逻辑结构,涵盖表命名、字段类型等细节。...

gitblog_06761的博客 1165

企业微信群机器人Webhook配置全攻略:从创建到发送消息的完整流程

本文详细介绍了企业微信群机器人Webhook的配置流程,从创建机器人到获取Webhook地址,再到发送各类消息的完整步骤。通过Python代码示例展示了文本、Markdown等消息类型的发送方法,并提供了性能优化建议和常见问题排查技巧,帮助企业高效实现自动化消息推送。

weixin_29208327的博客 6830

数据结构(数据库)设计规范

为什么80%的码农都做不了架构师?>>> ...

weixin_34152820的博客 2135

ESXI添加硬盘时提示 无法创建 VMFS 数据存储 - 无法更改主机配置

ESXI添加硬盘时提示 无法创建 VMFS 数据存储 - 无法更改主机配置1.打开ESXI的SSH2.找到不能添加的硬盘路径3.用SSH操作 1.打开ESXI的SSH 2.找到不能添加的硬盘路径 我的是第一个,找到你要添加但是不能添加的那个硬盘,点进去。 完整的路劲为:1/2 比如我的: /vmfs/devices/disks/t10.ATA_____ST500LT0122D1DG142___________________________________S3PHRNHQ (比较长哈!) 3.用SSH

AI_DOG的博客 2万+

【护网行动-红蓝攻防】第一章-红蓝对抗基础 认识红蓝紫

军事上的演练,是除了实战以外最能检验军队战斗力的一种考核方式,他可以模拟面对外部势力的攻击时候,如何更好的去维护国家和主权的安全。同样的,在网络上面,真实环境下的网络攻防演练也是检验一个单位,企业网络防御能力,发现潜在危险最好的方法。1.政策要求2安全威胁驱动当前,我国关键信息基础设施面临的网络安全形势严峻复杂,网站平台大规模数据泄露事件频发,生产业务系统安全隐患突出,甚至有的系统长期被控面对高级持续性的网络攻击,防护能力十分欠缺。目前,我国面临的网络安全威胁主要有以下几点。

wxh的博客 1574

银行数据仓库数据模型设计规范

银行数据仓库数据模型设计规范 【下载地址】银行数据仓库数据模型设计规范 本开源项目深入解析银行数据仓库的数据模型设计规范,提供从概念模型到物理模型的完整设计指南。概念模型阶段聚焦主题划分,帮助清晰组织数据;逻辑模型阶段细化主题,归纳总结关键数据点;物理模型阶段则实现逻辑结构,涵盖表命名、字段类型等细节。通过这份规范,您将...

gitblog_06775的博客 491

【RTD】AD7793两线式铂电阻PT100/PT1000应用

两线式RTD是低成本的检测方案,适用于检测精度不高、导线长度较短的场合。

只要思想不滑坡,想法总比问题多。 4258

常用数据库设计规范总结

数据库设计规范: 一 命名规范: 1、所有数据库对象名称必须使用小写字母并用下划线分割 2、所有数据库对象名称禁止使用MySQL保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 3、数据库对象的命名要做到见名识意,并且最好不超过32个字符 4、临时表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀 5、所有存储相同数据的列名和列类型必须一致 二:数据库基本设计规范 1、所有表必须使用Innodb存储引擎(MySQL5.5之前默认使用MyIsam,5.6以

shassd的博客 3065

置顶必读(2) | 《YOLOv11实战:从入门到深度优化》目录导航篇(持续更新中)

🏆 本文收录于 《YOLOv11实战:从入门到深度优化》 专栏。 本专栏系统梳理并持续复现全网各类 YOLOv11 / YOLO系列改进方案与实战案例,目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。 内容坚持 持续更新 + 深度拆解 + 工程落地导向,不仅讲“怎么改”,更讲“为什么这样改、如何真正落地到项目中”。

**My Coding Family** 11万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

DB 设计规范汇总

数据库命名规范 1、数据库名称全部使用小写; 2、名称只允许使用a-z、0-9及下划线的组合,不允许出现其他字符; 3、使用有意义的名称,能做到观其名知其意,比如:order_db; 4、年份固定格式为YYYY四位;月份固定为MM两位; 5、如果按百库十表方案分库,则名称为标准库名+下划线+编号后缀,其中编号长度固定为2位,取值范围从00到99,如order_db_00……order_db_99; 6、如果按照月份分库,则库名为标准库名+下划线+年月编号,其中年月格式为YYYYMM,固定6位长度,如ord

闲狗的博客 1819

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

数据仓库设计规范(更新中)

文章目录设计规范逻辑架构技术架构分层设计主题划分分级管理命名规范层级任务表字段模型规范建模方法建模工具血缘关系维度退化元数据管理开发规范脚本注释字段别名脚本格式流程规范 设计规范 逻辑架构 数据采集 数据存储 数据计算 数据展现 技术架构 数据采集→Kafka→hdfs→Flink→HBase 分层设计 ods→dw→dws→sh→ 主题划分 面向主题域管理 为了提高指标管理的效率,你需要按照业务线,主题域,和业务过程三级目录方式来进行指标管理 划分原子指标和派生指标 原子指标+原子指标=派生指

数据飓风 1834

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MongoDB数据库的设计规范

MongoDB是非关系型数据库的典型代表,DB-Engines Ranking 数据显示,近年来,MongoDB在NoSQL领域一直独占鳌头。MongoDB是为快速开发互联网应用 而设计的数据库系统,其数据模型和持久化策略就是为了构建高读/写的性能,并且可以方面的弹性拓展。

hongjian006的博客 967

数据库设计规范,我的数据库我做主

从数据库理论的抽象角度看,数据库设计是指对于一个给定的应用环境,构造出某种数据库管理系统支持的优化的数据库模式,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求(包括信息管理要求和数据处理要求)在数据库表设计中,虽然没有固定的规定,但可以根据广泛接受的数据库设计原则和最佳实践来总结出一些关键规定。这些规定涵盖了从命名约定到性能优化的各个方面,遵循这些规定可以帮助您创建一个结构良好、高效和易于维护的数据库。

我哎GIS博客 2558

【MySQL】数据库设计规范

范式和反范式

Yes_water的博客 448

1.数据仓库模型设计规范

从数据的时间跨度来说,通常是DWD层的一部分,主要的目的是为了满足用户分析的需求,而从分析的角度来说,用户通常只需要分析近几年(如近三年的数据)的即可。同时也可以用于少量的、且对刷新时间不是非常敏感的指标统计需要,比如交易的关闭和发货,在当前事务型事实表不支持,且只有少量的统计指标,可以基于累计快照事实表计算。事务事实表记录的事务层面的事实,保存的是最原子的数据,也称“原子事实表”。属于数据的公共层建设。周期快照事实表的粒度是每个时间段一条记录,通常比事务事实表的粒度要粗,是在事务事实表之上建立的聚集表。

HelloWowofei的博客 541
上一篇: 七、快速入门Git之配置公钥免密登录
下一篇: 1.电商项目之MySQL数据库设计
LemonSnm
博客等级 码龄8年 66粉丝 168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值