当我从多个表中选择数据时,我曾经经常使用JOINS,最近我开始使用另一种方式,但从长远来看,我不确定其影响.
例子:
SELECT * FROM table_1 LEFT JOIN table_2 ON (table_1.column = table_2.column)
Run Code Online (Sandbox Code Playgroud)
所以这是跨表的基本LEFT JOIN,但请看下面的查询.
SELECT * FROM table_1,table_2 WHERE table_1.column = table_2.column
Run Code Online (Sandbox Code Playgroud)
就个人而言,如果我加入,请说7个数据表,我宁愿在JOINS上这样做.
但是这两种方法有什么优缺点吗?
我目前正在研究i18n融入项目的最佳方法.
我想到了几种方法,首先是存储字符串和相关语言环境的数据库方案,但问题是选择字符串并不容易,因为我不想像所以:
SELECT text FROM locales WHERE locale = 'en_GB' AND text_id = 245543
Run Code Online (Sandbox Code Playgroud)
要么
SELECT text FROM locales WHERE locale = 'en_GB' AND text_primary = 'hello'
Run Code Online (Sandbox Code Playgroud)
下一个方法是将它们存储在文件中locales/en_gb/login/strings.php,然后尝试通过专门开发的类来访问它们:
$Language = Registry::Construct('Language',array('en_GB'));
echo $Language->login->strings->hello;
Run Code Online (Sandbox Code Playgroud)
这个问题是我必须构建一个系统,通过管理面板更新这些文件非常耗时,不仅仅是构建系统来管理字符串,而是在网站增长时实际管理字符串
我正在创建一个基于WinForms/KryptonForms的C#应用程序,并且由于应用程序处于开发的一半,我认为我最好将本地化排序.
作为一个天生的和繁殖的PHP程序员(我知道C#是一个全新的水平),我会创建一个类来检测语言并自动将语言包分配给应用程序.然后使用语言对象来访问值.
我想知道我是否可以在最简单/最好的方法上得到一些例子.
我个人想要一些与应用程序设置相关的内容
通常在哪里,我会做MyApplication.Properties.Settings.Default.SomeKey我希望的MyApplication.Languages.Current.ApplicationTitle,并MyApplication.Languages.en.ApplicationTitle为例子.
此外,通过仅为每个语言文件加载单个资源来提高速度也是有益的.
因此,语言加载英语,西班牙语用户被提升为该应用程序是英语,他想将其更改为西班牙语,他点击是,设置得到更新,应用程序重新启动并加载单个西班牙语语言包.
你对此有何看法?
编辑:
该应用程序基于XMPP协议并使用agsXMPP库.根据我的理解,每个向我发送他们在场的用户也应该发送他们的系统所使用的语言.
所以基本上如果有任何方法可以"掌握"存储单个单词的事实并且__("some string")在我的应用程序中使用它是可能的,但同时我只是在看GUI文本.
我现在正在努力解决一个Javascript问题,我无法在网上找到解释.我想这是因为我没有输入正确的关键字,这也可能与我为什么要挣扎这个问题有关.
我的基本假设是可以改变对象:
> var x = {'n': 2};
> x['n']
2
> x['n'] = 3;
3
Run Code Online (Sandbox Code Playgroud)
pheww工作.但仍然(函数也是对象):
> var addn = function(a) {
var n = 2;
return n + a;
}
> addn(3);
5
> addn['n'] = 3;
3
> addn(3);
5
Run Code Online (Sandbox Code Playgroud)
这次我无法改变'n'.有没有办法解决这个问题,同时保持功能的味道?而不是完全OO.我有一个相关的问题是如何维护函数的依赖性以便进行测试 - 再次没有OO?因为我正在寻找解决方案,但如果可能的话,我也想了解Javascript中的哪种机制让我苦苦挣扎.
干杯,
标记
免责声明:通过提及OO我不打算对OO说任何话.而且我也不打算对VI或Emacs说任何话.如果我以某种方式伤害了你的感情,请跳过这个.
我试图了解会话如何在PHP中工作,并发现会话数据默认存储在文件系统中.在共享托管环境中,会话数据可以由任何用户编写的PHP脚本读取.如何防止这种情况?
昨晚我转储Windows 7并将我的硬盘驱动器格式化为基于Linux的操作系统,纯粹是因为我想开始使用Node.JS
所以我已经安装了Node.JS并做了一些测试工作,http服务器和套接字等.
我想要做的是构建一个与MVC框架紧密集成的HTTP服务器,但在开始之前我需要学习如何在Node中高效构建.
例如在PHP中作为我的框架,我将创建一个引导加载系统来加载所有基类等,然后我会激活我的事件系统准备开始附加回调.
我将继续处理请求等,直到生成输出,然后将其发送到将处理标头等的输出处理程序
但Node是一个全新的环境,我想知道在Node中构建系统的最佳实践.
我正在寻找的信息更多的是与设计结构有关,而不是应用程序的实际编码,如何加载lib加载库的位置等等
任何帮助表示赞赏.
到目前为止,我的WebApplication很顺利,我已经构建了我的应用程序非常传统和一点程序.
我开始的是创建一个像这样的目录结构:
<root>
startup.js
/public/
favicon.ico
/images/
/stylesheets/
/javascripts/
/system/
init.js
config.js
/libs/
/exceptions/
http.js
server.js
/application/
/views/
/_override/
/errors/
generic.view
/partials/
sidebar.voew
index.view
/controllers/
index.js
/models/
users.js
Run Code Online (Sandbox Code Playgroud)
这个目录结构就像大多数基于MVC的Web应用程序一样,所以使用这种方法我觉得很舒服.
启动文件是由节点作为入口点执行的,node startup &看起来像这样:
/*
* Header of t he file, Copyright etc
*/
var _Intitialize = require("./system/init.js");
//Displays the command line header, title, copyright etc
_Intitialize.DisplayCommandLineHeader();
//Check the enviroment, Permissions, Ports etc
_Intitialize.CheckEnviroment();
//Start the server and …Run Code Online (Sandbox Code Playgroud) 在IIS上运行php有什么优缺点?
要么
在Apache上运行php的优点和缺点是什么?
有人有一个例子,采用这种方法有什么安全吗?
我知道在PHP中链接的好处,但我们可以说有以下情况
$Mail = new MailClass("mail")
->SetFrom("X")
->SetTo("X")
->SetSubject("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->Send();
Run Code Online (Sandbox Code Playgroud)
返回和重复使用对象是否存在任何问题,如速度或未遵循最佳实践等问题
如果您是Fluent-Interface的新手:Fluent-Interfaces上的Martin Fowler,也可以很好地阅读此内容
我完全理解,它不具备进行编程这种方式,能够像这样被处理:
$Mail = new MailClass("mail");
$Mail->AddRecipien(
array(/*.....*/)
);
$Mail->SetFrom("X");
$Mail->SetTo("X");
$Mail->SetSubject("X");
$Mail->Send();
Run Code Online (Sandbox Code Playgroud)
但是让我说我有一个像这样的对象:
$Order = new Order()
->With(22,'TAL')
->With(38,'HPK')->Skippable()
->With(2,'LGV')
->Priority();
Run Code Online (Sandbox Code Playgroud)
请注意->With(38,'HPK')->Skippable(),这是此类编程的Pro的完美示例
我在通过Active Directory获取组时遇到问题 System.DirectoryServices
最初我在一个在域上注册的计算机上启动了我的应用程序,但由于它是一个活动域,我不想对AD做任何写入,所以我设置了一台Windows XP作为主机操作系统的机器,并在VM上安装了Windows Server 2003.
我在机器中添加了另一个以太网端口并设置了一个交换机,1个以太网端口专用于VM,另一个端口用于主机.
在配置IP地址以使它们通信之后,我将我的应用程序转移到主机上并将其启动,但我得到了一个DirectoryServicesCOMException.
随着用户名和密码无效的消息:(只是为了检查它是不是活动目录我创建了第三个虚拟机并安装了Windows XP,我添加到域中,并在APP中测试了凭据,这是一种享受.
所以我认为一定是因为运行应用程序的机器不是域的一部分.
下面是造成问题的代码块:
public CredentialValidation(String Domain, String Username, String Password, Boolean Secure)
{
//Validate the Domain!
try
{
PrincipalContext Context = new PrincipalContext(ContextType.Domain, Domain); //Throws Exception
_IsValidDomain = true;
//Test the user login
_IsValidLogin = Context.ValidateCredentials(Username, Password);
//Check the Group Admin is within this user
//******HERE
var Results = UserPrincipal.FindByIdentity(Context, Username).GetGroups(Context);
foreach(Principal Result in Results)
{
if (Result.SamAccountName == "Domain Admins")
{
_IsAdminGroup = true;
break;
}
} …Run Code Online (Sandbox Code Playgroud)