Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 有人会建议在同一字段中存储日期和数字吗?_Sql_Database - Fatal编程技术网

Sql 有人会建议在同一字段中存储日期和数字吗?

Sql 有人会建议在同一字段中存储日期和数字吗?,sql,database,Sql,Database,作为背景,我是我所在部门的两名开发人员之一。我在高中一年级(1986年)进入计算机系,没有受过正规教育。我在1994年进入了微软Access,从2003年开始更为认真。我是自学成才的,一直努力学习尽可能多的关于数据库设计的知识,虽然我相信我知道很多,但我也知道我并不是什么都懂 根据我部门的另一位开发人员的简历,他拥有计算机科学学位,从事IT工作大约8年,包括网页设计和数据库设计。他去年12月被我的部门录用。我对自己对数据库设计和SQL基础知识的缺乏感到非常惊讶,我一直在试图弄清楚问题的一部分是我

作为背景,我是我所在部门的两名开发人员之一。我在高中一年级(1986年)进入计算机系,没有受过正规教育。我在1994年进入了微软Access,从2003年开始更为认真。我是自学成才的,一直努力学习尽可能多的关于数据库设计的知识,虽然我相信我知道很多,但我也知道我并不是什么都懂

根据我部门的另一位开发人员的简历,他拥有计算机科学学位,从事IT工作大约8年,包括网页设计和数据库设计。他去年12月被我的部门录用。我对自己对数据库设计和SQL基础知识的缺乏感到非常惊讶,我一直在试图弄清楚问题的一部分是我期望太高还是可能没有我想象的那么多

这就是我的问题。请注意,我们是100%MS Access,但我相信这个问题适用于任何SQL数据库。该开发人员的任务是获取电子表格并将其转换为数据库。电子表格的一部分涉及跟踪电池库存。在电子表格中,列标题为日期和计数。但是日期列中的数据是日期和批号的混合。因此,这位开发人员创建了一个表,其中包含一个数字字段来同时包含批号和日期,还有一个称为IsDate的布尔字段来指示字段中的值

我不同意这种方法,并且会创建两个单独的字段,一个是日期字段,一个是批号数字字段。当我提出这种方法时,他似乎不仅不明白为什么,而且对不得不改变他的设计感到有点生气


你会推荐哪种方法?另外,假设每个人都同意我的方法——当然你会的!;)-如果你有一个具有这种经验水平的开发人员,你会认为他值得保留和值得花时间和精力去教育他吗?< P>我自己的经验法则是:

始终将数据保留在本机数据类型中

这有助于比较、排序、查找和分组(尤其是在数据库中),并使您的存储不太容易出现查询错误。此外,访问数据时不需要使用另一个谓词(
和isdate
)。因此,我认为你的做法是正确的


你同事的方法似乎不是高等教育的问题,而是个人的方法。我见过有博士学位的员工能够很好地听取合理的论证,也见过有大一新生犯了严重错误,不听礼貌的建议。

我最肯定的做法是将日期和批号存储在不同类型的字段中——将每个字段设置为相关内容,如果没有可用的值,则设置为空。通过这样做,您将能够看到实际可用的数据,并对这些数据执行有意义的操作

关于你的第二个问题,我想这将真正取决于当你问他们为什么选择这种方法时,相关开发人员说了什么。

你是对的

只有在严重的内存限制下,这种体系结构才可能(注意)被接受


至于和他打交道,我会先和他谈谈,并解释他为什么选择给定的方法,这在10年前Access数据库中可能很常见(但即使那样,也有足够的磁盘和内存空间,不必做这种把戏)

他不愿谈论自己的设计,这比设计本身更能说明他的能力。即使是最误导的设计也应该基于结构化的方法或想法。在我看来,犯错不是坏事,创造随机结构是坏事。但由于不知道你的要求,很难提出是否值得留下他


你们中的一位是“高级”层级的智者还是分担责任的人

指出他这样做是在破坏。在试图用你丰富的知识给他留下深刻印象之前,要能够描述1NF 2NF和3NF。

我建议询问其他开发人员使用此设计的原因,而不是将批次和日期分为不同字段的典型设计,以使报告更容易。你可以根据他的解释来衡量他的技能。如果他不想解释的话。。。这完全是另一回事,和他一起工作很愉快;)我没有直接问他原因,部分原因是我希望他自愿为自己的决定辩护。当我提出我的建议时,他只是盯着屏幕看了几秒钟,然后回答:“如果我用一个文本字段来代替呢?”我们之间没有正式的等级关系,我们有相同的标题。但我在该部门工作了7年,大部分数据库都是我创建的,我是菜单前端和后端实用程序的创建者,也是该部门公认的专家。我也非常同意你的其他评论:犯错没有错。问题在于你如何处理错误。“这可能在10年前Access数据库中很常见”。不,这在Access中从来都不是必需的或常见的,甚至可以追溯到1991年或1992年的1.0版。坦白地说,我能看到设计这样一张桌子的唯一原因是无知。即使在一个好的组织中,无知也是一个很难克服的障碍。