小编aw *_*rud的帖子

我是否需要在外键上创建索引?

我有一张桌子A和一张桌子B. 在主键上A有一个外键,.BBB_ID

由于某种原因(我知道有正当理由)当我在密钥上加入这两个表时它没有使用索引.

我是否需要单独创建索引A.B_ID或者是否存在外键提供的索引?

sql oracle indexing

114
推荐指数
5
解决办法
6万
查看次数

浏览器何时执行Javascript?执行光标如何移动?

我想知道是否有任何可用资源描述浏览器的光标如何执行Javascript.

我知道它会在页面加载时加载并执行标记,并且您可以将函数附加到各种窗口事件,但事情变得模糊的是,例如,我通过AJAX检索远程页面并将其内容放入div中.

如果该远程页面必须加载脚本库,例如<script src="anotherscript.js" />何时加载"anotherscript.js"并且其内容正在执行?

如果我在当前页面上包含"anotherscript.js",然后我加载了一些包含此脚本的重复内容的远程内容,会发生什么?它会覆盖原来的吗?如果原始的"anotherscript.js"中有一个var,其值已更改,然后我重新加载该文件...我会丢失原始值还是忽略了第二次包含此脚本?

如果我通过AJAX加载一些程序性的Javascript,它什么时候执行?我做完之后马上mydiv.innerHTML(remoteContent)?还是在此之前执行?

javascript ajax

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

如何确定性地验证JSON对象是否未被修改?

根据JSON.stringify的MDN文档:

不保证非数组对象的属性按任何特定顺序进行字符串化.不要依赖于字符串化内同一对象内的属性排序.

我曾希望通过缓存对象的字符串化版本来确定对象是否已更改,然后将其与随后的字符串化对象版本进行比较.这似乎比递归迭代对象并进行比较要简单得多.问题是因为JSON.stringify函数不是确定性的,所以当我对同一个对象进行字符串化时,我可以在技术上得到一个不同的字符串.

我还有其他选择吗?或者我是否必须编写令人讨厌的比较函数来确定对象相等性?

javascript json

37
推荐指数
3
解决办法
9084
查看次数

应该何时使用数据库同义词?

我已经得到了语法,但我想知道是否有人可以提供一个说明性的用例,其中数据库同义词非常有用.

sql oracle database-design plsql synonym

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

如何将属性传递给Backbone.Model,我不希望将其作为属性处理?

我有一个名为的Backbone.Model Company.我的Company模型有一个Employees包含Employee模型的Backbone.Collection .

当我实例化我的Employee模型以填充Employees集合时,我希望他们能够引用Company它们所属的集合.但是当我传入Company它时,它就成了其中一个属性Employee.这是一个问题,当我去保存Employee因为该toJSON方法将包含一个Company对象,在数据库中所有我存储的是外键整数company_id.

我希望Backbone.Model有第二个参数接受不属于核心属性的模型属性.我怎么能绕过这个?我意识到我可以实例化我的Employee模型,然后附加Company,但我真的想在传统的"构造函数"中完成所有的赋值,而不是从外部附加属性.

例如:

Employee = Backbone.Model.extend({});

Employees = Backbone.Collection.extend({
  model: Employee
});

Company = Backbone.Model.extend({
  initialize: function() {
    this.employees = new Employees({});
  }
});

c1 = new Company({id: 1});
e = new Employee({name: 'Joe', company_id: 1, company: c1});
c1.employees.add(e);

e.get('company'); // => c1

e.save(); // BAD -- attempts …
Run Code Online (Sandbox Code Playgroud)

javascript backbone.js

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

我怎样才能编写可重用的Javascript?

我已经开始将我的函数包装在Objects中,例如:

var Search = {
  carSearch: function(color) {
  },
  peopleSearch: function(name) {
  },
  ...
}
Run Code Online (Sandbox Code Playgroud)

这有助于提高可读性,但我仍然存在可重复性问题.更具体地说,困难在于两个方面:

  1. 接收参数.很多时候我会有一个带有多个输入字段的搜索屏幕和一个调用javascript搜索功能的按钮.我必须在按钮的onclick中放入一堆代码来检索然后将输入字段中的值列入函数调用,或者我必须对HTML输入字段名称/ ID进行硬编码以便随后可以检索它们用Javascript.我为此解决的解决方案是将字段名称/ ID传递给函数,然后使用该函数从输入字段中检索值.这很简单,但似乎不合适.

  2. 回归价值观.大多数Javascript调用的效果往往是屏幕上的某些视觉直接更改,或者是在调用中执行的其他操作的结果.当我在功能结束时放置这些屏幕改变效果时,可重用性就是干杯.例如,搜索完成后,我需要在屏幕上显示结果.

其他人如何处理这些问题?提出我的思考上限让我相信我需要在我的应用程序中的每次使用和我创建的通用方法之间都有一个特定于页面的Javascript层,这些方法将在应用程序范围内使用.使用前面的示例,我将有一个搜索按钮,其onclick调用myPageSpecificSearchFunction,其中搜索字段ID /名称是硬编码的,它会封送参数并调用通用搜索功能.泛型函数只返回数据/对象/变量,不会直接从DOM读取或对DOM进行任何更改.然后,页面特定的搜索功能将接收该数据并适当地改变DOM.

我是在正确的道路上还是有更好的模式来处理Javascript对象/方法的重用?

javascript code-reuse

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

迫使Backbone.sync更新使用POST而不是PUT的最难看的方法是什么?

我的一些Backbone模型应始终使用POST,而不是POST用于创建和PUT用于更新.我坚持使用这些模型的服务器能够支持所有其他动词,因此使用Backbone.emulateHTTP也不是一个完美的解决方案.

目前我覆盖了isNew这些模型的方法并让它返回true,但这并不理想.

除了直接修改backbone.js代码之外,还有一种简单的方法可以逐个模型地实现这个目标吗?我的一些模型可以使用PUT(它们被持久化到支持所有动词的不同服务器,包括PUT),因此将Backbone.sync替换为将'update'方法转换为'create'的服务器也不理想.

javascript backbone.js

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

在PHP中,对于数组输入,INPUTS的顺序是否有保证?

我有一个表单,用户输入无限数量的数据行.他们通过在屏幕上输入他们想要的任意数量的行来到达表单.

<?php
$numRows = $_GET['NUM_ROWS_REQUESTED'];

?>
<form method="post">
<?php
for($i = 0; $i < $numRows ;$i++) {
  $uuid = uniqid();
?>

  <input type="text" name="MYDATA[<?php print $uuid; ?>][FIRST_NAME]" />
  <input type="text" name="MYDATA[<?php print $uuid; ?>][LAST_NAME]" />
<?php
}
?>
</form>
Run Code Online (Sandbox Code Playgroud)

我想知道,当表格被张贴并且我在$_POST['MYDATA']阵列中收到这些记录时,如果可以保证它们将按照它们在屏幕上发布的顺序排序.或者它们会被uniqid()随机生成的那个订购?

我使用唯一ID而不仅仅是更容易排序的整数的原因是用户可以删除行并使用该页面上的javascript添加其他行.检查碰撞太难了.

html php forms html-post

19
推荐指数
2
解决办法
7985
查看次数

如何在事务中简单地破坏引用完整性,而不禁用外键约束?

我有一个有3列的表:

ID, PARENT_ID, NAME
Run Code Online (Sandbox Code Playgroud)

PARENT_IDID在同一个表中具有外键关系.该表正在为层次结构建模.

有时ID记录会改变.我希望能够更新记录ID,然后更新依赖记录' PARENT_ID以指向新记录ID.

问题是,当我尝试更新ID记录时,它会破坏完整性并立即失败.

我意识到我可以使用new插入一个新记录ID,然后更新子项,然后删除旧记录,但是我们有很多触发器,如果​​我这样做会搞砸.

有没有办法暂时更新父级,承诺更新子级(显然它会在提交时失败)而不会短暂禁用外键?

sql oracle referential-integrity hierarchical-data

17
推荐指数
3
解决办法
8371
查看次数

什么时候应该嵌套PL/SQL BEGIN ... END块?

当看起来正确时,我有点偶然地将BEGIN ... END块中的代码子组分组.大多数情况下,当我正在处理一个较长的存储过程并且在一个位置需要一个临时变量时,我将仅为该部分代码声明它.当我想识别和处理特定代码段抛出的异常时,我也会这样做.

为什么要在程序,函数或其他更大的PL/SQL块中嵌套块的任何其他原因?

sql oracle plsql

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