这样的数据怎么存储更好?

chengulv 2018-01-22 09:11:07
每次可提交6个数字。 如: 1,2,3,4,5,6

想把他们相互关联起来,随便找期中的一个数字 都能和它一起出现过的其他全部数字。

如 搜索2、 出来的结果是 1、3、4、5、6
搜索3、 出来的结果是 1、2、4、5、6

MSSQL中 这样的表,如何设计,如何添加保存比较好?

我是想设计三个字段 A、B、addTime

1,2, 2018-1-22
1,3, 2018-1-22
1,4, 2018-1-22
1,5, 2018-1-22
1,6, 2018-1-22
2,3, 2018-1-22
2,4, 2018-1-22
2,5, 2018-1-22
2,6, 2018-1-22
3,4, 2018-1-22
3,5, 2018-1-22
......

但这样在存储过程中要如何把数据添加进去呢? 用循环太慢了吧。 有没有其它什么好办法?
...全文
1385 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaITOldMan 2018-02-07
  • 打赏
  • 举报
回复
引用 3 楼 yenange 的回复:
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
--优点:效率高,占用空间小,一目了然
CREATE TABLE t(
	searchNum INT,
	startNum INT,
	endNum INT,
	addTime DATETIME DEFAULT(GETDATE())	
)
ALTER TABLE t ADD CONSTRAINT ck_t_searchNum CHECK ( searchNum BETWEEN startNum AND endNum )

INSERT INTO t (searchNum,startNum,endNum) VALUES (2,1,6)
INSERT INTO t (searchNum,startNum,endNum) VALUES (3,1,6)
INSERT INTO t (searchNum,startNum,endNum) VALUES (5,2,10)

SELECT 
	searchNum
	,startNum
	,endNum
	,STUFF( 
		(SELECT ','+CAST(sv.number AS VARCHAR(10)) 
			FROM [master].dbo.spt_values AS sv 
			WHERE sv.[type]='P' AND sv.number BETWEEN t.startNum 
				AND t.endNum AND sv.number!=t.searchNum FOR XML PATH(''))
		,1,1,'') AS result
	,addTime
FROM t
/*
searchNum	startNum	endNum	result				addTime
2			1				6	1,3,4,5,6			2018-01-23 08:25:07.933
3			1				6	1,2,4,5,6			2018-01-23 08:25:07.933
5			2				10	2,3,4,6,7,8,9,10	2018-01-23 08:25:07.933
*/
很不多,值得推荐学习
日月路明 2018-01-31
  • 打赏
  • 举报
回复
为什么不采用#01的设计方案?
jack66wong 2018-01-31
  • 打赏
  • 举报
回复
学习一下。。。。。。。。。。。。。。
xiaoxiangqing 2018-01-23
  • 打赏
  • 举报
回复
最好保存为子表
吉普赛的歌 2018-01-23
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
--优点:效率高,占用空间小,一目了然
CREATE TABLE t(
	searchNum INT,
	startNum INT,
	endNum INT,
	addTime DATETIME DEFAULT(GETDATE())	
)
ALTER TABLE t ADD CONSTRAINT ck_t_searchNum CHECK ( searchNum BETWEEN startNum AND endNum )

INSERT INTO t (searchNum,startNum,endNum) VALUES (2,1,6)
INSERT INTO t (searchNum,startNum,endNum) VALUES (3,1,6)
INSERT INTO t (searchNum,startNum,endNum) VALUES (5,2,10)

SELECT 
	searchNum
	,startNum
	,endNum
	,STUFF( 
		(SELECT ','+CAST(sv.number AS VARCHAR(10)) 
			FROM [master].dbo.spt_values AS sv 
			WHERE sv.[type]='P' AND sv.number BETWEEN t.startNum 
				AND t.endNum AND sv.number!=t.searchNum FOR XML PATH(''))
		,1,1,'') AS result
	,addTime
FROM t
/*
searchNum	startNum	endNum	result				addTime
2			1				6	1,3,4,5,6			2018-01-23 08:25:07.933
3			1				6	1,2,4,5,6			2018-01-23 08:25:07.933
5			2				10	2,3,4,6,7,8,9,10	2018-01-23 08:25:07.933
*/
卖水果的net 2018-01-23
  • 打赏
  • 举报
回复
楼主这样的设计挺好,也是常见的设计模式。
中国风 2018-01-23
  • 打赏
  • 举报
回复
设计每两个表记录,LOT批次,每次提交的数量和时间 ,LotItem明细表每次提交的数字
LOT
ID Counted CreateDate
1  6        2018-01-22
2	6	 2018-01-22

LotItem
ID LotID Num
1 1	     1
2 1		 2
3 1		3
......
7  2    1

二月十六 2018-01-22
  • 打赏
  • 举报
回复
str addTime 1,2,3,4,5,6 2018-1-22 获取的时候用charindex
课题一高性能高扩展的千亿级实时数据仓库全实现 随着我们从IT时代步入DT时代,数据积累量也与日俱增,同时伴随着互联网的发展,越来越多的应用场景产生,传统的数据处理、存储方式已经不能满足日益增长的需求。而互联网行业相比传统行业对新生事物的接受度更高、应用场景更复杂, 因此基于大数据构建的数据仓库最先在互联网行业得到了尝试。 高性能高扩展的亿级电商全端实时数据仓库全实现(PC、移动、小程序) ,以热门的互联网电商实际业务应用场景为案例讲解,对电商数据仓库的常见实战指标以及难点实战指标进行了详尽讲解,具体指标包括:每日、月大盘收入报表、高付费用户分析报表、流量域多方位分析、营销域多方位分析、实时排行榜指标分析、用户主题分析、店铺主题时间区间分析等,数据分析涵盖全端(PC、移动、小程序)应用,与互联网企业大数据技术同步,让大家能够真正学到大数据企业级数据仓库的实战经验。 本课程凝聚讲师多年一线大数据企业实际项目经验,大数据企业在职架构师亲自授课,全程实操代码,带你体验真实的大数据开发过程,代码现场调试。通过本课程的学习再加上老师的答疑,你完全可以将本案例直接应用于企业。 课题二基于Flink+Hudi构建企业万亿级云上实时数据湖教程 随着互联网的发展,数据的不断膨胀,从刚开始的关系型数据库到非关系型数据库,再到大数据技术,技术的不断演进最终是随着数据膨胀而不断改变,最初的数据仓库能解决我们的问题,但是随着时代发展,企业已经不满足于数据仓库,希望有更强大的技术来支撑数据存储,包括结构化,非结构化的数据等,希望能够积累企业的数据,从中挖掘出更大的价值。基于这个背景,数据湖的技术应运而生。 本课程基于真实的企业数据湖案例进行讲解,结合业务实现数据湖平台,让大家在实践中理解和掌握数据湖技术,未来数据湖的需求也会不断加大,希望同学们抓住这个机遇。 项目中将以热门的互联网电商业务场景为案例讲解,具体分析指标包含:流量分析,订单分析,用户行为分析,营销分析,广告分析等,能承载海量数据的实时分析,数据分析涵盖全端(PC、移动、小程序)应用。 课题三基于电商业务全链路数据中台落地方案(全渠道、全环节、全流程) 在互联网发展浪潮中,数据对于企业的价值是非常大的,怎么管理好数据,以及快速挖掘数据价值,共享数据价值,急需一套解决方案,在数据开发中,核心数据模型的变化是相对缓慢的,同时,对数据进行维护的工作量也非常大;但业务创新的速度、对数据提出的需求的变化,是非常快速的。数据中台的出现,就是为了弥补数据开发和应用开发之间,由于开发速度不匹配,出现的响应力跟不上的问题。数据中台解决的问题,包括:效率问题、协作问题、能力问题,数据中台是聚合和治理跨域数据,将数据抽象封装成服务,提供给前台以业务价值的逻辑概念。 本课程基于真实企业数据中台建设架构进行讲解,带大家构建数据中台,通过学习完本课程可以节省你摸索的时间,节省企业成本,提高企业开发效率。 课程包含几大模块:数据源管理、数据接入管理、数据质量管理、数据质量报告、数据安全管理、数据查询IDE、数据血缘以及元数据管理、数据中台实战应用等,对于数据中台涉及到的业务以及技术进行详尽的讲解。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧