- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
现在我想到了三个选项。
1st -> 四列(日、月、年、日)=> 28, 03, 2011, 1我可以轻松地搜索和修改这些列,而无需额外学习 mysql 日期。
2nd -> 一个日期列 (dd-mm-yyyy) => 28-03-2011这只需要一列,更易于管理,因为只有一个 WHERE 参数用于搜索日期。但我不知道如何搜索某一天的所有记录。假设过去所有星期一的所有数据或所有 28 日的所有数据。
3rd -> 两列(今天日期的 unix 时间戳)=> 1827328721, 1现在,在这里我可以将数据存储为时间戳,并通过简单地获取日期然后将其转换为 unix 时间戳然后在 sql 中使用它来轻松地进行搜索和比较。对于 day,我可以使用 day 列。
现在问题是:
请彻底回答所有三个问题。因为我在其他地方找不到这些信息,而且我知道堆栈溢出有才华横溢的程序员可以非常连贯地回答这个问题。这个问题不仅对像我这样的新手有帮助,而且对所有可以引用此问题的新手都有帮助。
提前感谢 Stack overflow 社区。
最佳答案
How does the performance differ between these methods?
这将根据使用数据库的应用程序类型而有很大差异。
第一种方法可被视为非规范化方法,但如果数据用于 OLAP 应用程序,这可能是个好主意。例如,如果您经常需要收集一个月中特定日期的大量数据集,那么这种反规范化可能是合理的……否则,这只会浪费存储空间并且不必要地复杂化。
与第三个选项相同...它只是日期的非规范化表示;它在非常有限的用途中可能是合理的,但通常这将是一个坏主意。
--编辑--
通过去规范化,我指的是以下......
假设您有一条包含以下字段的记录...
Date Day Month Year
3/28/2011 28 3 2011
假设您需要将日期从 28 日更改为 29 日。在这种情况下,您需要更新两个字段,即 Date 和 Day 字段……而不仅仅是一个。如果您始终记得更新两者,那么这不是一个大问题。但如果你不这样做,随着时间的推移,你最终会得到类似下面的结果。
Date Day Month Year
3/28/2011 29 2 2009
那么实际日期是多少?通过将信息存储在一个地方,您可以消除数据不一致的可能性。
-- 结束编辑--
Which one is best in your opinion and why?
除非您的数据库用于 OLAP...我认为第二个选项是最好的。
How would the queries for selects, inserts and updates be constructed for these different proposed solutions?
对于首选的第二个选项,这是微不足道的。
-- 第二次编辑--
您可以将日期作为字符串传入,MySQL 将根据它进行解析。日期格式为“YYYY-MM-DD HH:mm:SS”,但如果不想存储则不必指定时间。
INSERT INTO tablename (date) VALUES ('2011-3-28')
或者,如果您只想添加当前日期...
INSERT INTO tablename (date) VALUES (CURDATE() )
-- 结束编辑--
关于mysql - 在 mysql : Performance comparison between various methods for Date 中存储日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5464102/
我正在制作一个简单的 jQuery 导航系统,但我远不是这方面的专家,因为以下代码可能会演示.. HTML: HOME | ABOUT US
我目前正在编写自己的小型(基于网络的)音乐播放器。但我因为一些专辑而失败了。我将有关歌曲、专辑和艺术家的所有信息存储在 NoSQL 数据库中,如下所示: { "artist" : "Some
例如,在 message.properties 中空白字段的默认 i18n 消息是: default.blank.message=Property [{0}] of class [{1}] canno
我在使用 Qt State Machine. 时遇到了一些问题我永远无法执行这些状态:我遇到各种类型的错误,但我无法弄清楚问题出在哪里。有关错误和导致这些错误的代码的更多信息,请参阅下文。 这是我的主
我想知道 eclipse 的向导,keystore 密码和后屏幕中询问的密码有什么区别?如果我发布相同的内容怎么办? 坦克的 来自意大利的瓦莱里奥 最佳答案 what the difference w
这是一个我经常回来的问题: 什么最好要使用的集合,用于某些 xyz 情况(通常绑定(bind)到 DropDownList )? 有人有这方面的备忘单吗?各种选项之间的区别的完整列表? 最佳答案 如果
今晚有各种各样的问题。下载了更新的 Android Studio 和 Gradle 并进行了一些编码,然后开始出现这些错误。尝试卸载 android studio,将我的构建文件中的 Gradle 版
我正在寻找使用 Spring Data 提供的 API 对 Mongo Collection 实现 upsert 操作的正确方法。 详细来说,我有以下用例。集合 collection 的架构如下所示:
我在 OAuth 交换结束时获得的 id_token 具有以下内容: "id_token": { "aud":"xxx.apps.googleusercontent.com", "ema
我目前正在学习 C++ 继承,所以如果这个问题很愚蠢,我提前道歉。 实现这个场景: 父类(super class)有一个颜色属性,可以是任何颜色(假设颜色用整数表示)。 假设我有这个父类(super
我有第 1、2、3、4、5、6、7、8、9、10 列,我想在所有这些编号的列中搜索一个特定值并且名称 = Bob 所以: SELECT * FROM table WHERE name = BOB AN
已更新 我在第 4 章的问题 2 上遇到了一些麻烦,来自 Paul Kelly 的 “C 编程指南”。 据我所知,我的语法是正确的,但是当程序到达第 36 行时,程序会自动填充 scanf(); 变量
我正在使用 Google Maps JavaScript API V2 标记保存在数组中的位置。具有不同坐标的标记显示得很好,但我不知道如何显示具有相同坐标的各种标记。我需要它,因为一组位置可以具有相
我见过以下两种在 C API 中声明不透明类型的方式。在 C 中声明不透明结构/指针的各种方法有哪些?使用一种样式比使用另一种样式有什么明显的优势吗? 选项1 // foo.h typedef str
我正在尝试使用 cocos2dx 2.0.4 将 iOS 游戏移植到 Android 平台。该游戏的核心是用 C++ 编写的,我们设法在 iOS 上运行它,事实上该游戏在 Apple Store 上可
我正在尝试将 Phonegap 3.1 与 phonegap-facebook-plugin 集成,以使我的应用程序能够使用 facebook 登录: https://github.com/phone
当我使用 Interface Builder 将控件绑定(bind)到 NSArrayController 时,绑定(bind)检查器中的“ Controller 键”字段下有多种选项。 我理解什么是
我正在研究比较器和可比接口(interface)之间的差异。 在其他网站上,甚至在 stackoverflow 上,都提到当我们需要对各种字段进行排序时,我们使用了 Comparator。 现在我正在
我需要在我的 android 应用程序中实现 facebook 的共享功能。我的场景是我必须能够在所有其他 Activity 中使用在启动屏幕中创建的 facebook 对象。我已经检查过 SO 中的
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
我是一名优秀的程序员,十分优秀!