小编Jos*_*ith的帖子

为什么在我的`INSERT ... ON DUPLICATE KEY UPDATE`中影响了2行?

我正在INSERT ... ON DUPLICATE KEY UPDATEPRIMARY KEY下表中的a 做一个:

DESCRIBE users_interests;
Run Code Online (Sandbox Code Playgroud)
+------------+---------------------------------+------+-----+---------+-------+
| Field      | Type                            | Null | Key | Default | Extra |
+------------+---------------------------------+------+-----+---------+-------+
| uid        | int(11)                         | NO   | PRI | NULL    |       |
| iid        | int(11)                         | NO   | PRI | NULL    |       |
| preference | enum('like','dislike','ignore') | YES  |     | NULL    |       |
+------------+---------------------------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)

但是,即使这些值应该是唯一的,我也会看到2行受到影响.

INSERT INTO users_interests (uid, iid, preference) VALUES (2, 2, 'like')
ON DUPLICATE KEY UPDATE …
Run Code Online (Sandbox Code Playgroud)

mysql insert insert-update

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

如何改进这个PHP/MySQL新闻源?

让我从蝙蝠开始,说我知道这不是最好的解决方案.我知道这是一个kludgy和一个功能的黑客.但那就是我在这里的原因!

这个问题/工作建立了 Facebook的新闻提要的创建者安德鲁博斯沃思讨论Quora.

我正在构建各种新闻源.它完全是在PHPMySQL.

替代文字


MySQL

Feed的关系模型由两个表组成.一个表用作活动日志; 事实上,它的名字activity_log.另一张桌子是newsfeed.这些表几乎相同.

日志架构activity_log(uid INT(11), activity ENUM, activity_id INT(11), title TEXT, date TIMESTAMP)

...并且Feed架构newsfeed(uid INT(11), poster_uid INT(11), activity ENUM, activity_id INT(11), title TEXT, date TIMESTAMP).

每当用户执行与新闻源相关的操作时,例如询问问题,它将立即记录到活动日志中.


生成新闻源

然后每隔X分钟(此刻5分钟,将改为15-30分钟后),我运行一个执行下面脚本的cron作业.此脚本循环遍历数据库中的所有用户,查找该用户的所有朋友的所有活动,然后将这些活动写入新闻源.

目前SQL,剔除活动(被称为ActivityLog::getUsersActivity())有一个LIMIT 100强加性能*的原因.*不是我知道我在说什么.

<?php

$user = …
Run Code Online (Sandbox Code Playgroud)

php mysql feeds web-applications

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

你如何在Node.js中模拟MySQL(没有ORM)?

我正在使用Node.jsfelixge的node-mysql客户端.我没有使用ORM.

我正在测试Vows并希望能够模拟我的数据库,可能使用Sinon.由于我本身并没有真正的DAL(除了node-mysql),我不确定如何解决这个问题.我的模型大多是简单的CRUD,有很多吸气剂.

有关如何实现这一目标的任何想法?

mysql mocking node.js sinon vows

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

我应该在MongoDB中实现自动递增吗?

我正在从MySQL切换到MongoDB.对于一个非常基本的users表,我熟悉的架构将自动递增uid.有关此用例,请参阅Mongo自己的文档.

我想知道这是否是最好的建筑决策.从UX的角度来看,我喜欢将UID作为外部引用,例如在较短的URL中:http://example.com/users/12345

还有第三种方式吗?IRC Freenode的某人#mongodb建议创建一系列ID并缓存它们.我不确定如何实际实现它,或者是否还有其他路线我可以去.我甚_id至不需要以这种方式增加自身.只要文档中users都有唯一的数字uid,我会很高兴.

uuid auto-increment mongodb

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

帮助我改进我的持续部署工作流程

我一直在为PHP项目开发一个实现大多数自动化连续部署周期的工作流程.我想对此工作流程中可能的流程或技术瓶颈,改进建议以及如何更好地自动化和增加团队易用性的想法提供一些反馈.


核心组件:


编辑:我已经改变了工作流程图形采取ircmaxwell的贡献考虑在内:删除PHPUnit的扩展Selenium RC和运行这些测试仅作为QC阶段的一部分; 增加QC阶段; 在代码审查之后但在合并之前移动UI测试; 在QC阶段之后移动合并; 合并后移动部署.

此工作流程图描述了该过程.我的问题/想法/关注如下.

持续部署工作流程

我的疑虑/想法/问题:

  • 使用该系统的总体困难.

  • 时间参与.

  • 难以招聘Gerrit.

  • 难以招聘Puppet.

  • 我们稍后将在Amazon EC2实例上进行部署.如果我们要了解如何设置Debian与包Puppet和部署到Linode现在片,有没有对工作部署的潜力Linode来打破EC2?我们应该从一开始就进行构建和部署EC2吗?

  • 另一个问题:EC2Puppet.我们也在考虑使用Scalr作为解决方案.是否有必要避免Puppet单独开销并投资Scalr?我这里有关于成本的次要问题(ha!); 该Selenium试验不应该运行的是往往是EC2建立实例运行24/7,但对于像五分钟的身材,对于一个小时支付 …

php workflow continuous-integration hudson selenium-rc

36
推荐指数
1
解决办法
6606
查看次数

使用PHPUnit进行数据库测试的最佳实践

PHPUnit自己的手册有一些尚未写的部分,名为"操作"和"数据库测试最佳实践".

用于测试数据库的最佳实践是什么PHPUnit,特别是在MySQL

php mysql database phpunit unit-testing

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

在Backbone.js中使用Jade模板

我喜欢Node.js中Jade模板引擎的类似HAML的语法,我很乐意在Backbone.js中使用它的客户端.

我通常使用以下样式的Underscore.js模板看到Backbone.

/* Tunes.js */
window.AlbumView = Backbone.View.extend({
  initialize: function() {
    this.template = _.template($('#album-template').html());
  },

  // ...
});

/* Index.html */
<script type="text/template" id="album-template">
  <span class="album-title"><%= title %></span>
  <span class="artist-name"><%= artist %></span>
  <ol class="tracks">
    <% _.each(tracks, function(track) { %>
      <li><%= track.title %></li>
    <% }); %>
  </ol>
</script>
Run Code Online (Sandbox Code Playgroud)

我想看到的是一种使用AJAX(或其他方法)获取Jade模板并在当前HTML中呈现它们的方法.

javascript backbone.js underscore.js pug

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

如何减少我在jQuery函数中使用的子项数量?

我觉得我必须.children()在一些jQuery函数中使用太多.

这是我的HTML:

<div class="goal-small-container">
  <div class="goal-content">
    <div class="goal-row">
      <span class="goal-actions">
Run Code Online (Sandbox Code Playgroud)

这是我的jQuery:

$('.goal-small-container').hover(function() {
  $(this).children('.goal-content').children('.goal-row').children('.goal-actions').css({visibility: "visible"});
}, function () {
  $(this).children('.goal-content').children('.goal-row').children('.goal-actions').css({visibility: "hidden"});
});
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?如何减少我在jQuery函数中使用的子项数量?

html css jquery children

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

GitHub,Gerrit,Hudson(Jenkins)的工作流程

我刚开始一起使用GitHub,Gerrit和Hudson(Jenkins).我需要一些关于工作流程的想法.

我们想使用GitHub作为我们的主要远程仓库.我们想将Gerrit主要用于代码审查,还要用于Hudson中的构建触发器.

但是,目前我在思考这个工作流程时遇到了一些麻烦,并希望听到其他人自己做了什么.思考?

continuous-integration triggers hudson github gerrit

16
推荐指数
2
解决办法
8253
查看次数

使用的SELECT语句具有不同的列数(REDUX !!)

还有一个类似的问题,但它似乎没有回答我的问题.

我的问题是:为什么我ERROR 1222 (21000): The used SELECT statements have a different number of columns从以下SQL中收回此错误

SELECT * FROM friends
LEFT JOIN users AS u1 ON users.uid = friends.fid1
LEFT JOIN users AS u2 ON users.uid = friends.fid2
WHERE (friends.fid1 = 1) AND (friends.fid2 > 1)
UNION SELECT fid2 FROM friends
WHERE (friends.fid2  = 1) AND (friends.fid1 < 1)
ORDER BY RAND()
LIMIT 6;
Run Code Online (Sandbox Code Playgroud)

这是users:

+------------+---------------+------+-----+---------+----------------+
| Field      | Type          | Null | Key | Default …
Run Code Online (Sandbox Code Playgroud)

mysql sql mysql-error-1222

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