我有两个任务数组 - 创建和分配.我想从创建的任务数组中删除所有已分配的任务.这是我工作但很乱的代码:
@assigned_tasks = @user.assigned_tasks
@created_tasks = @user.created_tasks
#Do not show created tasks assigned to self
@created_not_doing_tasks = Array.new
@created_tasks.each do |task|
unless @assigned_tasks.include?(task)
@created_not_doing_tasks << task
end
end
Run Code Online (Sandbox Code Playgroud)
我相信有更好的方法.它是什么?谢谢 :-)
我有一套典型的CUSTOMER/ORDERS表格,我想显示特定客户负责的销售总百分比.我可以像这样获得系统中的订单总数:
SELECT COUNT(order_id) FROM orders
Run Code Online (Sandbox Code Playgroud)
我可以得到客户订单的总数,如下所示:
SELECT COUNT(order_id) FROM orders WHERE cust_id = 541
Run Code Online (Sandbox Code Playgroud)
如何将这些组合成一个返回特定客户销售百分比的查询?谢谢!
更新:我找到了解决方案.请参阅下面的答案.
如何优化此查询以最大限度地减少停机时间?我需要更新50多个模式,门票数量从100,000到200万不等.是否可以尝试同时在tickets_extra中设置所有字段?我觉得这里有一个解决方案,我只是没有看到.我一直在打击这个问题超过一天.
另外,我最初尝试不使用子SELECT,但表现得太多比我现在有更坏.
我正在尝试优化我的数据库以获取需要运行的报告.我需要聚合的字段计算起来非常昂贵,因此我对现有模式进行了非规范化以适应此报告.请注意,通过删除几十个不相关的列,我简化了故障单表.
我的报告将按创建时管理器和解析后管理器聚合票证计数.这个复杂的关系如下图所示:
EAV http://cdn.cloudfiles.mosso.com/c163801/eav.png
为了避免在运行中计算这个需要的六个令人讨厌的连接,我已经将以下表添加到我的模式中:
mysql> show create table tickets_extra\G
*************************** 1. row ***************************
Table: tickets_extra
Create Table: CREATE TABLE `tickets_extra` (
`ticket_id` int(11) NOT NULL,
`manager_created` int(11) DEFAULT NULL,
`manager_resolved` int(11) DEFAULT NULL,
PRIMARY KEY (`ticket_id`),
KEY `manager_created` (`manager_created`,`manager_resolved`),
KEY `manager_resolved` (`manager_resolved`,`manager_created`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
现在的问题是,我没有将这些数据存储在任何地方.经理总是动态计算.我在几个数据库中拥有数百万张票,这些数据库具有需要填充此表的相同模式.我希望以尽可能高效的方式执行此操作,但是在优化我正在使用的查询时未能成功:
INSERT INTO tickets_extra (ticket_id, manager_created)
SELECT
t.id,
su.user_id …Run Code Online (Sandbox Code Playgroud) 避免嵌套查询有多重要.
我总是学会像瘟疫一样避免它们.但它们对我来说是最自然的事情.当我设计查询时,我写的第一件事是嵌套查询.然后我将它转换为连接,这有时需要很长时间才能正确.并且很少提供大的性能改进(有时它会)
所以他们真的很糟糕.有没有办法使用没有临时表和filesort的嵌套查询
我认为Javascript是一种很棒的语言.我喜欢所有的小特性,继承模型,缺少类等等.因此,我从来没有想过学习一个框架,因为我所看到的所有(jQuery,MooTools,Prototype,Dojo)强迫你改变你编写代码的方式,在很多情况下,它甚至不再是Javascript.
然而,每次我必须实现像哈希表或链表一样基本的东西时,我都会感到同样的沮丧.当然,我写了一次而且再也没有写过,但考虑到这些结构在我之前被其他人编码了多少次,我真的不应该这样做.
是否有任何"纯"Javascript库可以为您提供一堆基本数据结构和实用程序,类似于您在java.util中找到的内容?同样,我不想要任何改变我编码方式的东西,我想在vanilla Javascript中使用这些对象.
谢谢
关于模型究竟是什么,我有点困惑.我知道它适用于来自数据库等的数据.它可以用于其他任何东西吗?例如,一个身份验证系统,在用户注册时向用户发送激活电子邮件.哪个是最适合放置电子邮件代码的地方?模型是否合适......或者更好地放在视图,控制器等中?
MySQL问题是StackOverflow上我最喜欢的一些问题.
不幸的是,这样的事情:
SELECT foo, bar, baz, quux, frozzle, lambchops FROM something JOIN somethingelse ON 1=1 JOIN (SELECT * FROM areyouserious) v ON 0=5 WHERE lambchops = 'good';
Run Code Online (Sandbox Code Playgroud)
让我的眼睛流血.
此外,尝试描述您的架构通常如下所示:
我有一个表CrazyTable,其中一个列是一个日期,它有一个主键Foo_Key但我想使用column_bar的子串(在CrazyTable中)加入SOMETABLE,该子串与月亮的相位有关(我存储了它)在moon_phases中作为三次序列化的PHP数组).
这是我问的一个问题的例子,如果我没有按照下面的步骤操作,我将永远不会得到任何人的满意答复:我没有羞耻..
我将在下面回答最能帮助我解决问题的方法.什么帮助你?
因此,让我先说一下,我不是一个SQL向导.我想要做的是作为一个概念简单,但在尝试最小化我正在执行的数据库查询量时给了我一个小小的挑战.
假设我有一个部门表.每个部门都有一份员工清单.
列出所有部门以及每个部门中哪些员工的最有效方式是什么.
因此,例如,如果我有一个部门表:
id name
1 sales
2 marketing
Run Code Online (Sandbox Code Playgroud)
还有一张人员表:
id department_id name
1 1 Tom
2 1 Bill
3 2 Jessica
4 1 Rachel
5 2 John
Run Code Online (Sandbox Code Playgroud)
列出所有部门和每个部门所有员工的最佳方式是这样的:
销售
营销
假装两张桌子实际上都很庞大.(我想避免获取部门列表,然后循环遍历结果并为每个部门执行单独查询).当状态和注释存储在单独的表中时,类似地考虑在类似Facebook的系统中选择状态/注释.
我正在读一本编译器书,当它说"S属性语法也是L属性语法"时,有点困惑.无法理解.有人能说清楚(一个例子应该很棒).谢谢.
我经常在如何在我的应用程序中解决这个问题时发生冲突.我使用了许多选项,包括:
我没有找到任何关于解决这个问题的最佳方法的可用性研究.当你从<10个元素到100个元素时,这些替代解决方案中的许多都是很好的,但是当你从一百个到一千个时,可能会彻底崩溃.
你们用的是什么?你为什么用它?你能指点我的可用性案例研究吗?是否有一个尚未被发现的"神奇"解决方案?
mysql ×4
sql ×4
javascript ×2
optimization ×2
arrays ×1
html ×1
model ×1
oop ×1
postgresql ×1
ruby ×1
sql-server ×1
usability ×1