我正在开发一个应用程序,需要我创建我的第一个大型MySQL数据库.我目前正在艰难地围绕组织它的最佳方式.任何人都可以推荐任何阅读材料,以显示不同的方式组织MySQL数据库用于不同的目的吗?
我不想尝试深入了解我想象数据库的主要组件的细节,因为我不能确信我能够清楚地表达它,以便在这一点上有所帮助.这就是为什么我只是在寻找MySQL数据库组织的一些常规资源.
我已将以下方法添加到Array原型中:
Array.prototype.foreach = function(func){
for(var i = 0; i < this.length; i++){
if(!func(this[i]) === false) break; //return false from func in order to break the loop
}
return this;
}
Run Code Online (Sandbox Code Playgroud)
在同一个文件中,在上面的代码之后,我有以下jQuery插件:
jQuery.fn.addClassForEvents = function(){
var that = this;
arguments.foreach(function(event){
that.bind(event[0], function(){
that.addClass(event[0]);
})
.bind(event[1], function(){
that.removeClass(event[0]);
});
});
return this;
}
Run Code Online (Sandbox Code Playgroud)
为了使用这个jQuery插件,我的代码看起来像:
$('div').addClassForEvents(['mouseenter', 'mouseleave']);
Run Code Online (Sandbox Code Playgroud)
但是,浏览器在jQuery插件的"arguments.foreach(...."行中抛出一个错误,简单地说明了
对象#没有方法'foreach'
然而,该foreach
方法适用于我的代码的其他地方.为什么在这个jQuery插件中未定义?
我有两个实体,Chain
和Step
.Chain
有一个属性steps
,可以是多维Step
实体数组,例如:
[
step,
step,
step,
[
step,
step
],
step
]
Run Code Online (Sandbox Code Playgroud)
每个Step
对象都有content
一个字符串属性.
如果我使用关系数据库,我只是将该数组存储为JSON,每个step
都是step_id
特定步骤.
我如何在Core Data中实现类似的功能?我认为我需要让这个Step
类符合NSCoding协议,但那会是什么样子?我怎样才能使它只id
在Chain.steps的最终值中存储它的等价物,即对它自己的引用?
编辑
下面的评论表明我nextStep
在Step
其他人之间包含了一对多关系(让我们称之为)Steps
.然后我会使用这种关系从a中的一步到下一步Chain
,因此Chain
实体只需要包含Step
序列中的第一步.这个问题是a Step
可能属于多个Chain
,因此它可能并不总是具有相同的nextStep
值.
假设我有1到450的NSNumbers.我可以选择将它们添加到NSMutableArray,从1开始到450结束,或从450开始到1结束.如果我可以从1开始并结束,我的代码会更简单一点有450,但是当我终于要在阵列上进行枚举的时候,我最终需要逆转它.换句话说,我需要枚举中的第一个对象为450,最后一个对象为1.
因为我的代码会更简单,如果我这样做(从1开始添加,然后在枚举之前反转),这是我的首选方法.但是,Apple文档- (NSEnumerator *)reverseObjectEnumerator
说:
使用快速枚举协议更有效(请参阅NSFastEnumeration).Mac OS X v10.5及更高版本以及iOS 2.0及更高版本提供快速枚举.
那么我应该避免数组反转并简单地编写稍微复杂的代码,以便首先以所需的顺序创建NSMutableArray吗?
以下CSS在Webkit中工作正常.没有在Opera中检查它,但我知道它在Firefox中不起作用.谁能告诉我为什么?
正确的类肯定会应用到我的HTML(用Firebug检查它,我确实看到了-moz-animation: 500ms ease 0s normal forwards 1 arrowRotateDot
属性.arrow
).
这在IE9中也不起作用,虽然我最初有-ms-animation:...
和-ms-transform:...
.我认为它应该在IE9中工作,但是当它没有时,我只是假设IE不支持这些.但是,现在它不能在Firefox中运行,也许还有其他事情正在发生.
.page.updatesPodcasts > .mainContent > .content .contentUpdates .disc.dot .dvd .arrow {
-webkit-animation: arrowRotateDot 500ms forwards;
-moz-animation: arrowRotateDot 500ms forwards;
-o-animation: arrowRotateDot 500ms forwards;
animation: arrowRotateDot 500ms forwards;
}
.page.updatesPodcasts > .mainContent > .content .contentUpdates .disc.f2 .dvd .arrow {
-webkit-animation: arrowRotateF2 500ms forwards;
-moz-animation: arrowRotateF2 500ms forwards;
-o-animation: arrowRotateF2 500ms forwards;
animation: arrowRotateF2 500ms forwards;
}
@-webkit-keyframes arrowRotateDot {
100% {
left:-18px; top:182px;
-moz-transform: …
Run Code Online (Sandbox Code Playgroud) 想象一下,一个方法是将一个对象添加到某个NSMutableArray或NSMutableDictionary.是否更好(以及为什么)只允许一个带有类型的参数id
,或者允许两个 - 一个用于数组,一个用于字典?
例如:
- (void)addObjectToArray:(NSMutableArray *)anArray
orDictionary:(NSMutableDictionary *)aDictionary;
Run Code Online (Sandbox Code Playgroud)
与
- (void)addObjectToArrayOrDictionary:(id);
Run Code Online (Sandbox Code Playgroud)
如果使用第一个选项,我只是将nil
参数作为参数传递给我不需要的任何一个(即如果添加到字典中,我将nil
作为数组参数传递).
我在Drupal建立了一个在线社区,其主页有点像Facebook墙.您会看到最近的25篇帖子,其中最近的两篇评论低于这些帖子.这些评论下面还有一个textarea,以便您可以快速发布特定帖子的新评论.
这些Facebook风格的帖子通过JavaScript内置了很多功能.单击帖子正下方的"查看所有评论"链接会进行AJAX调用,该调用会抓取该帖子的所有评论并在其下方显示.您还可以将帖子标记为有用,作为问题的解决方案,内联编辑注释等.所有这些操作都需要AJAX请求,这意味着发出请求的JavaScript需要知道基本信息,例如节点ID(唯一的)帖子的标识符),评论ID(评论的唯一标识符)等.
我最初的实现是将这些基本数据分散在各个帖子中,这使得编写需要查找它的JS变得更加复杂.所以我的第二个实现只是将所有这些数据输出到每个帖子的主包装元素中的JSON兼容字符串中.虽然这使JS更容易找到所需的数据,但将JSON写为字符串是一种痛苦(转义引号,没有换行符).
所以现在我有第三个想法,我正在寻求实施之前的反馈.我们的想法是为所有这些帖子创建一个单独的全局JS数组,其中包含保存每个帖子数据的对象.该数组中的每个元素都将保存AJAX调用所需的必要数据.所以它看起来像这样:
Facebook风格的帖子模板
<div class="post" data-postindex="<?php echo $post->index; ?>">
<!-- lots of other HTML for the post -->
</div>
<script type="text/javascript">
globalPostArray.push({
nid: <?php echo $post->nid; ?>,
authorID: <?php $post->authorID; ?>,
//etc. etc. etc.
});
</script>
Run Code Online (Sandbox Code Playgroud)
上面代码的结果是,当点击一个需要AJAX请求的链接时,JS只会从该链接向上遍历DOM,直到找到主要.post
元素.然后它将获取值,data-postindex
以便知道哪个元素globalPostArray
保存它所需的数据.
思考?我觉得必须有一些标准的,可接受的方式来完成这样的事情.
我有一个用户表,其中包含我要在登录用户的mysql查询中访问的一堆列.最终,我希望这些列中的值形成一个User对象.是否有标准函数来执行此操作,或者我是否基本上需要将查询的每个值传递给新的User语句,以便将它们传递给User类的构造函数?
我越来越慢地理解闭包,以下代码可以正常工作.我想知道是否有更简单/更好的方法来完成我在这里尝试做的事情.
在下面的代码中,this
简单地引用一个对象,该对象具有sections
一个数组属性.我遍历这个数组,并绑定到每个el
属性的每个属性(一个DOM元素)的悬停事件section
.我公司供应的回调hover()
方法就是关闭进来.主要this
对象有两个方法.sectionMouseenter()
,并.sectionMouseleave()
根据事件类型(由代表不管是被调用e.type
在我的代码)是mouseenter
或mouseleave
.作为参数,当前部分将传递给这些方法.当然,for
循环的迭代在JavaScript中没有变量范围,因此需要闭包来封装section
变量的引用.
for (var i = this.sections.length - 1; i >= 0; i--) {
var section = that.sections[i];
section.el.hover(
(function(section){
return function(e){
that['section' + e.type.capitalize()](section);
}
})(section)
);
};
Run Code Online (Sandbox Code Playgroud)
这是编写此闭包的"正确"方法,还是有更好的方法?
我能够让我的 NSBrowser 实例在第一列中显示正确的数据。但是,当我选择其中一个选项时,下一列只会显示相同的一组选项。我已经阅读了文档,查看了 Apple 的所有相关示例代码,以及我在互联网上可以找到的几乎所有内容,但我根本无法找出实现所需方法的正确方法。我提供给浏览器的数据是一个字典数组。每个字典又包含一个“子”键,它是另一个字典数组。这些字典有自己的“子”键,它们也是字典数组等。使用 JSON 进行描述(对象是字典,数组是数组),它看起来像这样:
data = [
{
name: 'David',
children:[
{
name: 'Sarah',
children: {...}
},
{
name: 'Kevin',
children: {...}
}
]
},
{
name: 'Mary',
children:[
{
name: 'Greg',
children: {...}
},
{
name: 'Jane',
children: {...}
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
所以第一列应该显示“大卫”和“玛丽”。如果选择了“David”,下一列应显示“Sarah”和“Kevin”,依此类推。
我当前的实现依赖于我创建的自定义方法,该方法应该将浏览器的索引路径从提供的数据转换为相应的 NSArray 级别。这个方法看起来像:
- (NSArray *)getSelectionInBrowser:(NSBrowser *)browser
{
NSArray *selection = browserData;
NSIndexPath *path = [browser selectionIndexPath];
for (NSUInteger i = 0; i < path.length; i++) {
selection = [[selection objectAtIndex:i] objectForKey:@"children"]; …
Run Code Online (Sandbox Code Playgroud) javascript ×3
objective-c ×3
cocoa-touch ×2
ios ×2
iphone ×2
jquery ×2
mysql ×2
php ×2
ajax ×1
arrays ×1
closures ×1
cocoa ×1
constructor ×1
core-data ×1
css ×1
css3 ×1
database ×1
enumeration ×1
ipad ×1
macos ×1
nsbrowser ×1
nscoding ×1
object ×1
organization ×1
prototype ×1