小编Joh*_*ica的帖子

Mysql数据类型 - Enum或不枚举,Enum是否为空?

我有大型数据库(数百万行),我正在尝试为2个字段的数据类型做出最佳选择.我做的大部分都是varchar或INT.然而,2个领域我想知道Enum是否是最好的方式.

字段1 第一个字段是性别,我的数据目前是"男性"或"女性",或者可能是空白.我最初设置如下:

GENDER VARCHAR(6) NOT NULL
Run Code Online (Sandbox Code Playgroud)

这是最好的方式,还是最好将其设置为:

GENDER ENUM ('Male', 'Female') NOT NULL
Run Code Online (Sandbox Code Playgroud)

我是否需要将其设为NOT NULL以允许空白,或者我是否需要添加空白,即

GENDER ENUM ('Male', 'Female', '') NOT NULL
Run Code Online (Sandbox Code Playgroud)

更何况,我正在考虑将整个领域转换为M或F.

第2场: 除了状态字段外,我还有很多相同的事情要考虑,其中可能包含52个值(50个状态,DC,加空白).

我想最大的问题是 - 所有这些Enum的东西都值得吗?我的数据库有数百万行,所以一切都是一个因素,但我应该只使用VARCHAR(2)作为状态而不是ENUM.

mysql database database-schema

12
推荐指数
2
解决办法
8424
查看次数

如何更改mysql持久连接的超时

哪里定义了持久连接的超时?是否有可能改变它?

mysql persistent-connection

11
推荐指数
1
解决办法
4万
查看次数

如何通过IP地址获取国家代码和货币代码?

我是zend Framework的新手.我想通过ip-address获取货币代码,国家代码.

我可以有任何示例网址吗?

请帮我...

提前致谢.

php zend-framework ip-address geolocation

11
推荐指数
3
解决办法
3万
查看次数

MySQL:存储过程中的IF/THEN语句

我正在编写一个使用多个IF/THEN语句的存储过程,如果它们的计算结果为true,则还需要执行多个查询.问题是,我似乎无法找到任何适当语法的例子.从MySQL dev手册中,似乎我可以在"statement_list"中有多个查询,但到目前为止我无法使其工作.

这是我正在尝试做的事情:

SET agency = 
  COALESCE((SELECT org_agency_o_id 
            FROM orgs_agencies 
            WHERE org_agency_code = maj_agency_cat)
              ,(SELECT min(org_id) 
                FROM orgs     
                WHERE org_name LIKE CONCAT('U.S.',SUBSTRING(maj_agency_cat,5)))) 

IF agency IS NULL THEN 
  -- execute multiple queries   
  INSERT INTO orgs (org_name
                   ,org_name_length
                   ,org_type
                   ,org_sub_types) 
  VALUES (CONCAT('U.S. ',SUBSTRING(maj_agency_cat,5))
         ,LENGTH(CONCAT('U.S. ',SUBSTRING(maj_agency_cat,5)))
         ,'org','Org,GovernmentEntity,Federal,Agency');

SET agency = LAST_INSERT_ID();
END IF;
Run Code Online (Sandbox Code Playgroud)

错误:

您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便'IF agency IS NULL THEN INSERT INTO orgs (org_name,org_name_length,org_type,'在第53行附近使用正确的语法

有任何想法吗?我知道它必须是简单的东西,所以我非常感谢任何人的意见.

mysql stored-procedures if-statement

11
推荐指数
1
解决办法
6万
查看次数

delphi XE多单元命名空间问题

我正在阅读Delphi XE中的RAD Studio Documentaion.这里有一些文字.

[Delphi参考 - > Delphi语言指南 - >程序和单元 - >使用命名空间 - >搜索命名空间 - >多单元命名空间]

多单元命名空间

如果单元声明引用相同的命名空间,则多个单元可以属于同一命名空间.例如,可以使用以下单元声明创建两个文件unit1.pas和unit2.pas:

// in file 'unit1.pas' 
unit MyCompany.ProjectX.ProgramY.Unit1 

// in file 'unit2.pas' 
unit MyCompany.ProjectX.ProgramY.Unit2 
Run Code Online (Sandbox Code Playgroud)

在此示例中,命名空间MyCompany.ProjectX.ProgramY逻辑上包含unit1.pas和unit2.pas中的所有接口符号.

命名空间中的符号名称必须是唯一的,跨命名空间中的所有单元.
在上面的示例中,Unit1和Unit2都定义了一个名为mySymbol的全局接口符号,这是一个错误

我测试了这个.代码如下.

----------------------------------------------------------------- 
program Project1; 

{$APPTYPE CONSOLE} 

uses 
  SysUtils, 
  Lib.A in 'Lib.A.pas', 
  Lib.B in 'Lib.B.pas'; 

begin 
  WriteLn ( TestValue ) ; 
  ReadLn ; 
end. 
----------------------------------------------------------------- 
unit Lib.A; 

interface 
  const TestValue : Integer = 10 ; 
implementation 

end. 
----------------------------------------------------------------- 
unit Lib.B; 

interface 
  const TestValue : Integer = 10 ; …
Run Code Online (Sandbox Code Playgroud)

delphi namespaces delphi-xe

11
推荐指数
1
解决办法
2229
查看次数

涉及多态关联的复杂时间序列统计聚合

好.请耐心等待,因为我需要提供大量的背景细节才能对我的问题征求合理的答案.

我有一个网站,允许您每日选股.它的工作方式是,提示您在当天面临关闭的公司之间进行选择.例如,GE与IBM.您可以选择两种类型:性能(哪种股票表现更好?)和总成交量(合并后的股票交易量是否高于或低于X?).你每天获得100美元的虚拟美元来进行选择.

最终,我们的目标是跟踪哪个用户在以下时间段内以不同类别(下文解释)的每次选择赚取最多钱:5天,15天,30天,90天,180天,1年,全部 - 时间.计算每次选择的金额非常简单.这是总赚钱(或丢失)/选秀数量.

现在,用户选择的每个公司都属于分类层次结构.通常,分类层次结构如下所示:

分部 - >主要集团 - >产业集团 - >分类 - >公司

这里有些例子:

  • 采矿 - >金属采矿 - >铁矿石 - >棕色矿石采矿 - >公司A.
  • 采矿 - >金属采矿 - >铁矿石 - >棕色矿石采矿 - >公司B.
  • 采矿 - >金属采矿 - >铁矿石 - >褐铁矿矿业 - >公司C.
  • 采矿 - >金属采矿 - >铁矿石 - >褐铁矿采矿 - >公司D.
  • 制造业 - >烟草产品 - >雪茄 - > Stogies - >公司E.
  • 制造业 - >烟草产品 - >雪茄 - > Stogies - >公司F.
  • 制造业 - >烟草产品 - >雪茄 - >小雪茄 - …

mysql sql ruby-on-rails aggregation polymorphic-associations

11
推荐指数
1
解决办法
598
查看次数

如何使FastCodePatch在Delphi XE2 Win64平台上运行?

Unit FastCodePatch.pas在Win32平台上运行.Delphi XE2支持Win64平台,任何想法如何让FastCodePatch在Win64平台上运行?

unit FastcodePatch;

interface

function FastcodeGetAddress(AStub: Pointer): Pointer;
procedure FastcodeAddressPatch(const ASource, ADestination: Pointer);

implementation

uses
  Windows;

type
  PJump = ^TJump;
  TJump = packed record
    OpCode: Byte;
    Distance: Pointer;
  end;

function FastcodeGetAddress(AStub: Pointer): Pointer;
begin
  if PBYTE(AStub)^ = $E8 then
  begin
    Inc(Integer(AStub));
    Result := Pointer(Integer(AStub) + SizeOf(Pointer) + PInteger(AStub)^);
  end
  else
    Result := nil;
end;

procedure FastcodeAddressPatch(const ASource, ADestination: Pointer);
const
  Size = SizeOf(TJump);
var
  NewJump: PJump;
  OldProtect: Cardinal;
begin
  if VirtualProtect(ASource, Size, PAGE_EXECUTE_READWRITE, OldProtect) then
  begin
    NewJump := …
Run Code Online (Sandbox Code Playgroud)

delphi 64-bit delphi-xe2

11
推荐指数
2
解决办法
1769
查看次数

如何插入此x86_64程序集操作码?

在我的Mac上查看x86_64的一些汇编代码,我看到以下指令:

48 c7 c0 01 00 00 00  movq    $0x1,%rax
Run Code Online (Sandbox Code Playgroud)

但我无处可寻找一个分解操作码的参考.似乎48c7是移动指令,c0定义%rax寄存器等.

那么,我在哪里可以找到一个告诉我这一切的参考?

我知道http://ref.x86asm.net/,但看看48个操作码,我没有看到任何类似移动的东西.

assembly x86-64

11
推荐指数
1
解决办法
1万
查看次数

找到最重要位的算法

嗨,谢谢你花时间回答我的问题.

我的一位朋友在接受采访时被问到以下问题:"给定一个二进制数,找到最重要的位".我立即想到了以下解决方案,但不确定它是否正确.

即,将字符串分成两部分并将两部分转换为十进制.如果左子阵列的小数为0,则在右子阵列中执行二进制搜索,查找1.

这是我的另一个问题.是最重要的位,二进制数中最左边的1?你能告诉我一个例子,当一个0是最重要的一个例子和解释时.

编辑:

在下面的答案中似乎有点混乱,所以我正在更新问题以使其更精确.采访者说"你有一个网站,你收到数据,直到最重要的位表示停止传输数据"你将如何告诉程序停止数据传输"

algorithm binary search

11
推荐指数
2
解决办法
3万
查看次数

计算每个区间增长的SQL语句

在我们的数据库中,我们有一个表,可以跟踪设备的功耗.插入新值的速率不固定,只有在确实存在变化时才会写入,因此值之间的时间距离会发生变化,可能会达到1秒到几分钟.条目包含时间戳和值.每增加一行,该值总是会增加,因为它计算的是kWh.

我想要实现的目标如下:我想指定一个开始和结束日期时间,比方说一个月.我还想指定一个15分钟,1小时,1天或类似的间隔.我需要得到的结果是[间隔的开始日期时间],[该间隔的功耗],例如像这样(其中间隔将设置为1小时):

2015-01.01 08:00:00   -   65
2015-01.01 09:00:00   -   43
2015-01.01 10:00:00   -   56
Run Code Online (Sandbox Code Playgroud)

这就是表格的样子:

TimeStamp            Value
-------------------------
2015-01-08 08:29:47, 5246
2015-01-08 08:36:15, 5247
2015-01-08 08:37:10, 5248
2015-01-08 08:38:01, 5249
2015-01-08 08:38:38, 5250
2015-01-08 08:38:51, 5251
2015-01-08 08:39:33, 5252
2015-01-08 08:40:20, 5253
2015-01-08 08:41:10, 5254
2015-01-09 08:56:25, 5255
2015-01-09 08:56:43, 5256
2015-01-09 08:57:31, 5257
2015-01-09 08:57:36, 5258
2015-01-09 08:58:02, 5259
2015-01-09 08:58:57, 5260
2015-01-09 08:59:27, 5261
2015-01-09 09:00:06, 5262
2015-01-09 09:00:59, 5263
2015-01-09 09:01:54, 5265
2015-01-09 09:02:44, 5266
2015-01-09 09:03:39, …
Run Code Online (Sandbox Code Playgroud)

sql sql-server aggregate-functions intervals

11
推荐指数
2
解决办法
1074
查看次数