SQL 设计心得、逗号分隔列表

第一:

  在开始编码前、主要关注数据库里要保存什么样的数据,以级最佳的数据组织方式和内在关联方式。

第二:

  使用你所知的数据库特性尽可能高效的实现数据管理。如正确的索引、数据库类型、高效的select!

---------------------------------------------------------------------------------------------------------------------------------

下面将会讲解、《逗号分隔列表》引起的一些数据库问题、Coders表用户记录程序员和他用的程序设计语言这个表只是为了引出这本主题相关的问题

  create table Coders(--程序员表

  Name varchar(16) primary key --姓名

  Languge varchar(8)--程序语言

  );

  一般来说在工司只一门语言就可以了。比如我用的就是SQL 。也就是说

  insert into Coders(Name,Languge) values(‘蒋乐哥哥‘,‘SQL‘);这样一行就可以表达了。好了问题来了、小公司一般来说它要的是一个“全才”也就是说我可能还要写C#

  所以刚才的insert 不可这样写、要像下面的这个一样才可以表达好。

  insert into Coders(Name,Languge) values(‘蒋乐哥哥‘,‘SQL、C#‘);

问题:

  1、可拓展性不好、也就说是如果公司不只是要求你会SQL、C#、HTML、XAML、JS、、、、、等等这样这个列是保存不了这么多的。

  2、对于聚合不方便、比如说统计一下蒋乐哥哥会几种语言?想想要什么写。

  3、数据库完整性不能得到保护、insert into Coders(Name,Languge) values(‘蒋乐哥哥‘,‘湖南话‘);看到了吧“湖南话”就目前来说是不算编程语言的。当是这句insert 是不会

    报错的。

  4、性能问题、如找会C#程序员 select Name from Coders where Languge like ‘%C#%;可以看到这个select 是就算是有索引也是用不到的。

解决方案:

  create table Languges(LangugeID int primary key,LangugeName varchar(8));--建立一个编程语言表别的表都要参照这张表。

  create table Contact(

  LangugeID int ,

  Name varchar(8),

  constraint FK_languge foreign key(LangugeID) references Languges(LangugeID),

  constraint FK_Name foreign key(Name) references Corders(Name));

  

时间: 2024-11-03 22:18:37

SQL 设计心得、逗号分隔列表的相关文章

算导之DP算法的设计心得

和其他的DP帖子只是灌输思考之后的结果不同,这篇是DP算法的自我体会,应该是设计DP算法的思考过程. 斯以为,这才是拿到一问题,从思考到解决最精华的部分:) 犹记得第一次看到算法导论上拿最长与最短路径来说明DP中最优子结构证明过程的一个细节的时候,心里激动不已,国内的教材完全不考虑这个,而是把伟人思考之后的东西呈现给新人. 我第一看到,心想,这就是我要的东西,包括之前的loop invariant也是如此,看国内教材时缺失而又如此渴望的东西,在算导中再次给出完美的答案. 寻找最优子结构: 1.

sql字段中逗号分隔字符串的判断

例如,数据表t1中有一个字段PlayTheme存放的数值类似如下: 第一行:1,2,12 第二行:22,222,2222 第三行:1,2 第四行:2,12 第五行:2 如果你想取出PlayTheme字段包含'2'的行,在构造SQL(参数形式)时,要是写成下面这种形式的话,则会将五行一起取出来,显然达不到预期效果,第二行不是你想要的: SqlStr.AppendFormat(@"WHERE … AND t1.PlayTheme LIKE '%{0}%'", param); 但是,写成下面

清理SQL Server服务器名称列表

SQL2008: C:\Users\TQ\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin SQL2012: C:\Users\TQ\AppData\Roaming\Microsoft\SQL Server Management Studio\11.0\SqlStudio.bin TQ为本人计算机名 清理SQL Server服务器名称列表

运营平台——效率型后台管理类产品交互设计心得

此文已由作者姚依旻授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 无论是光鲜亮丽界面可人的C类产品,还是稳重大气商务气质的B类产品,若某产品存在运营行为,则必存在一个给团队自己人用的后台,也就是运营平台.人们容易都把目光 focus 在大众用户的体验上,自己人的使用体验则优先级被放低了一些.我与运营平台朝夕相伴了一年整载,终于从一无所知到若有所悟,同时感慨时光飞速竟不察. 笔者在自己在写文章之前,也怕自己资历尚浅观点偏颇,故查阅了一些资料,得知各类运营后台的产品与交互设

慢阻肺疾病管理app——需求设计心得

需求确定已经两个星期过去了,现在回过头来写需求设计心得,能够总结出很多问题 过程: 拿到老师给的需求文档,对老师的需求进行提炼,选择自己将要实现的功能 对选择的需求进行了细分,完成需求原型.在此过程中,我们对需求的内容进行了讨论,对我们要实现的app进行了一个大致的想象,勾勒出每一个需求的呈现形式以及每一个功能的实现方式:当需求确定完,开始制作需求原型的时候,又发现了很多可以修改的地方,并且因为技术的原因,制作出来的需求原型似乎并没有完美的展现我们所期待的哪些功能,不过原型制作完需求也差不多确定

噪声收集系统——数据库设计心得

数据库设计心得 在需求分析阶段,其实数据库的设计就已经初具雏形,组内初步分析了需要哪些表来存放哪类数据,并探讨了各个表中的关键字段.但在需求分析阶段的数据库设计并不完整,只描述了部分实体,表中的属性也不能完全描述需求,数据库表间的关系没有体现,这就需要进入详细的数据库设计阶段来完善. 在数据库设计的第一阶段,还是围绕用户需求来展开工作.用户的需求在设计过程中扮演着中心角色,如果一开始对需求的分析就出现偏差,那数据库设计就很容易出现问题,好在需求分析阶段结束后我们的需求是十分明确的,项目组内根据项

创新课程管理系统数据库设计心得

因为创新课程管理系统这一个项目,是一个从无到有,没有标准可以去参考的一个项目. 这个项目专门针对该课程进行设计,所以需求的功能点很多,因此数据库有多次设计,更改再推翻重新设计再更改. 因为用户有多个类型,系统管理员,学校管理员,老师,助教,学生. 一开始的时候想把每一个都单独设计为一个表,然后登陆的时候选择身份后直接在对应的表里面进行查找即可.所以当时的用户表是如下的: 后来经过小班讨论课,又觉得可以把所有的用户全部放在一个表里面,即一个User表里面有所有用户的资料,不过这样会导致许多字段的空

手势识别项目小组——数据库设计心得

因为我们的项目是算法类,所以项目本身的需求不太明确.设计数据库的过程其实本身也是在进一步明确需求的过程. 这是我们画出的用例图: 以下是我们小组成员的数据库设计心得: JJ: 通过本次数据库设计的过程,我经历了很多也学会了很多. 首先因为课程组的要求是设计出至少15张表,而我们想要达到15张表是很困难的.我们的设计想法是先根据我们之前设计的原型先设计出一些表,根据登陆.注册.历史记录等设计了几张表.但是这些表也基本是基于用户而设计的,后来我们也寻求了指导老师的帮助,指导老师帮忙想了一个损失函数表

spark sql 优化心得

本篇文章主要记录最近在使用spark sql 时遇到的问题已经使用心得. 1 spark 2.0.1 中,启动thriftserver 或者是spark-sql时,如果希望spark-sql run on hdfs,那样需要增加参数 "--conf spark.sql.warehouse.dir=hdfs://HOSTNAME:9000/user/hive/warehouse" 例如启动thriftserver: bin/start-thriftserver.sh --master s