问题列表 - 第3351页

如何使用Zend Framework正确创建域?

我前一段时间问过这个问题,但现在我正在寻求实现数据库访问层和域层之间的实际分离.我也将努力将业务逻辑移动到它所属的域和控制器脚本之外.

我正在使用Zend Framework为数据访问层实现表数据网关和行数据网关模式,但显然无法真正定义如何构建与数据访问层分离的域层.我考虑过使用Active Record模式,其中域逻辑与数据访问逻辑共存,但我有以下情况至少发生一次,我认为Active Record不会处理:

我有一个表"Person",其中包含person_id和userType字段.

每个userType(admin,buyer,associate,supervisor)都具有与之关联的特定业务逻辑,所有类型都从Person对象继承一些基本功能.

我不想使用专门属于一种类型用户的业务逻辑来膨胀Row Data Gateway对象,但我不确定如何构造域层来表示不同类型的用户.例如,我是否创建一个包含PersonGateway对象的Person对象,然后编写将调用传递给网关对象的包装函数,或者编写Person对象以扩展PersonGateway对象,然后只实现我需要的特定函数?

同样,我通常认为这是(部分)工厂问题,我需要一个工厂方法,它将基于userType实例化正确的子类.这仍然是Zend Framework的Zend_Db类中最好的方法吗?

任何有关如何在Zend_Db上正确创建域模型的教程的建议或链接将不胜感激.

php zend-framework

9
推荐指数
1
解决办法
3520
查看次数

SqlBulkInsert - 如何设置Fire触发器,检查约束?

我正在使用具有有限权限的数据库用户,使用C#方法将ADO.NET 2.0 SqlBulkCopy对象批量插入到MS SQL 2005数据库中.当我尝试运行该操作时,我收到错误消息:

批量复制失败.用户对表'theTable'没有ALTER TABLE权限.ALTER TABLE权限是必需上批量复制操作的目标表,如果该表具有触发器或检查约束,但'FIRE_TRIGGERS'还是 'CHECK_CONSTRAINTS'散装提示没有被指定为选项,以批量复制命令.

我阅读了一些文档并使用构造函数创建了批量复制对象,该构造函数允许我指定这样的东西:

    SqlBulkCopy bc = new SqlBulkCopy(
        System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"],
        SqlBulkCopyOptions.FireTriggers & SqlBulkCopyOptions.CheckConstraints);
Run Code Online (Sandbox Code Playgroud)

但这并没有改变任何东西 - 我得到了和以前一样的错误信息.我尝试摆弄其他一些SqlBulkCopyOptions值,但没有运气.我真的以为这会解决这个问题,我错过了什么吗?

我在表上向用户授予ALTER后测试了该过程,操作成功.但是,这不适合我的情况.

ado.net sql-server-2005 sqlbulkcopy

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

当BOM(字节顺序标记)丢失时,如何最好地猜测编码?

我的程序必须读取使用各种编码的文件.它们可以是ANSI,UTF-8或UTF-16(大或小端).

当BOM(字节顺序标记)出现时,我没有问题.我知道文件是UTF-8还是UTF-16 BE或LE.

我想假设没有BOM文件是ANSI.但我发现我正在处理的文件经常缺少BOM.因此,没有BOM可能意味着该文件是ANSI,UTF-8,UTF-16 BE或LE.

当文件没有BOM时,扫描某些文件并最准确地猜测编码类型的最佳方法是什么?如果文件是ANSI,我希望接近100%的时间,如果是UTF格式,我希望接近100.

我正在寻找一种通用的算法来确定这一点.但实际上我使用Delphi 2009,它知道Unicode并且有一个TEncoding类,所以特定的东西将是一个奖励.


回答:

ShreevatsaR的回答让我在Google上搜索"通用编码检测器delphi",这让我感到惊讶,因为这个帖子在活着只有大约45分钟后被列为#1位置!这是快速googlebotting !! 同样令人惊讶的是Stackoverflow如此迅速地进入第一名.

Google的第二个条目是Fred Eaker关于字符编码检测的博客文章,列出了各种语言的算法.

我发现在该页面上提到了Delphi,它让我直接进入SourceForge的Free OpenSource ChsDet Charset Detector,这是用Delphi编写的,基于Mozilla的i18n组件.

太棒了!谢谢所有回复的人(全+1),谢谢ShreevatsaR,再次感谢Stackoverflow,帮助我在不到一个小时内找到答案!

delphi algorithm encoding byte-order-mark delphi-2009

29
推荐指数
2
解决办法
8026
查看次数

您将为英国数据库使用多少个地址字段?

地址记录可能在大多数数据库中使用,但我看到了一些用于存储它们的略有不同的字段集.字段数似乎从3-7变化,有时所有字段都标记为address1..addressN,其他时间给定特定含义(城镇,城市等).

这是英国特定的,尽管我也对世界其他地方的评论持开放态度.在这里你需要地址的第一行(实际上只是数字)和邮政编码来识别地址 - 其他一切都是额外的奖励.

我现在赞成:

  • 地址1
  • 地址2
  • 地址3
  • 邮政编码

如果我们需要它,我们可以添加国家(不太可能).

你怎么看?这太少了,太多了吗?

database naming-conventions street-address

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

在JavaScript中捕获302 FOUND

我使用jQuery向我的服务器发出一个AJAX POST请求,该请求可以返回状态为302的HTTP响应.然后,JavaScript只是向此URL发送GET请求,而我想在此响应中将用户重定向到URL.这可能吗?

javascript ajax jquery http-status-code-302

36
推荐指数
2
解决办法
9万
查看次数

config/environments/development.rb中"consideration_all_requests_local"的用途?

这个Rails配置设置的目的是什么......

config.action_controller.consider_all_requests_local = true
Run Code Online (Sandbox Code Playgroud)

默认情况下,它设置为true config/environments/development.rb.

谢谢,

阮经天

ruby ruby-on-rails

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

SQL Server View在更改底层依赖项后显示过时/错误数据

我们有一个View(称之为X),它是由其他2个视图调用的基本视图(称为Y和Z).

今天我们进行了更改以查看X,在该视图之后,Y和Z开始返回不正确的数据.当我们在Management Studio中运行时Select * from Y(这正是代码中调用视图的方式),它将返回不正确的数据.但是,当我们运行视图包含它的实际SQL时很好.我们尝试了很多东西,直到一位同事建议添加一个空格来查看X和Z,然后运行Alter,这是有效的.一切恢复正常,运行良好.

我的问题是:MSSQL是否缓存其视图?如果是这样,你怎么强迫他们不要强迫他们重新编译?

此外,任何有关此的额外阅读将是有帮助的.

sql-server sql-server-2005 view

8
推荐指数
2
解决办法
4928
查看次数

生产Web应用程序每秒的"平均"请求是多少?

在所谓的"快速"方面,我没有参考框架; 我总是想知道这一点,但从来没有找到一个直接的答案......

optimization

110
推荐指数
4
解决办法
10万
查看次数

如何设计数据库模式以支持使用类别标记?

我正在尝试像Database Design for Tagging这样的东西,除了我的每个标签都按类别分组.

例如,假设我有一个关于车辆的数据库.假设我们实际上并不太了解车辆,因此我们无法指定所有车辆将具有的列.因此,我们将用信息"标记"车辆.

1. manufacture: Mercedes
   model: SLK32 AMG
   convertible: hardtop

2. manufacture: Ford
   model: GT90
   production phase: prototype

3. manufacture: Mazda
   model: MX-5
   convertible: softtop
Run Code Online (Sandbox Code Playgroud)

现在您可以看到所有汽车都标有其制造和型号,但其他类别并不完全匹配.请注意,汽车只能拥有每个类别中的一个.IE浏览器.一辆汽车只能有一个制造商.

我想设计一个数据库来支持搜索所有梅赛德斯,或者能够列出所有制造商.

我目前的设计是这样的:

vehicles
  int vid
  String vin

vehicleTags
  int vid
  int tid

tags
  int tid
  String tag
  int cid

categories
  int cid
  String category
Run Code Online (Sandbox Code Playgroud)

我有所有正确的主键和外键,除了我无法处理每辆车只能有一个制造商的情况.或者我可以吗?

我可以在vehicleTags中为复合主键添加外键约束吗?IE浏览器.我是否可以添加一个约束,使得复合主键(vid,tid)只能在vehicleTags中没有行时才添加到vehicleTags,这样对于同一个vid,还没有一个tid在同样的cid?

我的猜测是否定的.我认为这个问题的解决方案是向vehicleTags添加一个cid列,并创建新的复合主键(vid,cid).它看起来像:

vehicleTags
  int vid
  int cid
  int tid
Run Code Online (Sandbox Code Playgroud)

这可以防止汽车有两个制造商,但现在我已经复制了tid在cid中的信息.

我的架构应该是什么?

在我之前的问题中,Tom在我的数据库模式中发现了这个问题,你如何做多对多表外连接?

编辑
我知道在示例制造中应该真的是车辆表中的一列,但是假设你不能这样做.这个例子只是一个例子.

sql tags schema foreign-keys entity-attribute-value

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

可以使用哪些技术来加速C++编译时间?

可以使用哪些技术来加速C++编译时间?

这个问题出现在Stack Overflow问题C++编程风格的一些评论中,我很想知道它有什么想法.

我见过一个相关的问题,为什么C++编译需要这么长时间?,但这并没有提供很多解决方案.


这里投票有Visual Studio支持共享项目之间的预编译头

c++

239
推荐指数
17
解决办法
10万
查看次数