2010-09-04 158 views
0

Create_date - >假定它将记录为5/2/2009。为了搜索目的,当搜索创建日期时,我们可以根据个人月份或年份搜索,还是需要为此记录create_day,create_month,crate_year?一旦用户内容的搜索过滤器将会像例子 - >“显示来自过去2周,上个月,去年,仅当前月的内容”在DB中创建日期,日期和时间 - 问题

create_day - >虽然我们记录数字日期,但是我们可能会多次需要显示文本日(即:星期四)以显示对象何时创建。就像我们在2009年1月29日星期四下午3:45创建的社交网站上看到的一样。为了得到这个输出,我们是否需要为所有对象/活动记录create_day,或者是在应用程序级别的每个页面加载时计算吗?

create_time - >我们什么时候在DB中存储?用户本地时间还是固定时间?这是一个全球网站。如果固定,那么让我们假设我默认情况下为GMT。接下来的问题是如何向用户显示正确的时间,以便与当地时间匹配?必须考虑在美国时间每年更换两次(日光节约)的计算。或者,也许记录的时间总是在格林尼治标准时间,但根据他们检测到的时区显示给用户,但这意味着计算每个页面加载时间的时区?

既然我在这里,一边Q->查找和参考表之间的任何区别?如何区分这两个表 - >“Account_status”,它具有Active,Confirmed等等值以及另一个具有城市名称的表格“City”。第一个表格是仅在后端使用的系统ID表格。城市表是用户用来从中选择城市的ID表。这些都是查找或参考或相同/不同?

回答

0
  • CREATE_DATE您通常需要使用底层的存储日期的所有作品日期存储类型的DMBS(和时间,如果需要的话,像MySQL日期时间)。这样可以在DBMS中使用日期处理功能。对于过滤器示例,您将计算2周前的日期。你也可以有一个函数在DBMS中指定这样一个字符串。 PHP的strotime()允许这样做。
  • Create_day文本输出要么是自动(MySQL的日期时间为实例),或者它很容易使你需要哪个片。 (PHP日期()可以做到这一点)。为每条记录存储时间戳(日期时间)通常是个好主意。
  • CREATE_TIME如果这是你要使用UTC/GMT一个全球性的应用程序。每个用户都会将他们的偏移量应用于时间以及他们的表单提交(如搜索)。 PHP的DateTime对象允许指定一个时区名称作为偏移量。用户可以从列表中进行选择,但在它的标准形式,这是一个大名单,并没有太大的实用性走向,如果它甚至不符合他们的城市(http://us.php.net/manual/en/timezones.php)。另一种选择是通过Javascript获取用户计算机的时区。
  • 查找表是这些都是查找表。