我正在学习一门名为"数据库系统"的课程,对于我们的课程项目,我必须设计一个网站.
这是我创建的表的示例:
CREATE TABLE users
(
uid INT NOT NULL AUTO_INCREMENT,
username VARCHAR(60),
passhash VARCHAR(255),
email VARCHAR(60),
rdate DATE,
PRIMARY KEY(uid)
);
Run Code Online (Sandbox Code Playgroud)
教授告诉我"uid"(用户ID)完全无用且不必要,我应该使用用户名作为主键,因为没有两个用户可以拥有相同的用户名.
我告诉他我使用用户ID很方便,因为当我调用domain.com/viewuser?id=5之类的东西时,我只需检查参数:is_numeric($_GET['id'])......不用说他不相信.
由于我在大量教程中看到了user_id和其他类似属性(thread_id,comment_id等)并且查看了流行软件(例如vbulletin)的数据库模式,因此必须有很多其他(更强大的)原因.
所以我的问题是:你如何证明需要一个非空的自动递增id作为主键vs使用另一个属性如用户名?
我的测试是XCTests,我使用的是Objective-C而不是Swift.
我已经看过一些解决这个主题的文章,但似乎专注于旧版本的Xcode,例如:
在Xcode 6上获得代码覆盖率的推荐方法是什么?Apple是否内置了代码覆盖内容,可能是通过OSX Server通过Xcode CI?
我没有在JS中嵌套回调,而是想开火并听我自己的自定义事件.我不需要或不想访问DOM.这是一个例子:
function doSomething(){
//...
$.trigger('finished-doSomething'); //fire the event 'finished-doSomething'
}
//when the event 'finished-doSomething' is fired -> execute the function in the second param
$.live('finished-doSomething', function(){
alert("I finished-doSomething");
});
Run Code Online (Sandbox Code Playgroud)
是否可以使用普通的javascript代码或像jQuery这样的库来实现?如果没有,那么避免嵌套回调的好方法是什么?
谢谢!
我正在使用drscheme:http: //www.archlinux.org/packages/extra/x86_64/drscheme/
我正在尝试使用我的教科书中的示例代码,但我不断收到"未绑定标识符"错误.是因为方案解释器配置不正确吗?或者代码是完全错误的?
这里有一些例子:
输入:
#lang scheme
(define (equalimp lis1 lis2)
(COND
((NULL? lis1) (NULL? lis2))
((NULL? lis2) '())
((EQ? (CAR lis1) (CAR lis2)) (equalimp (CDR lis1) (CDR lis2)))
(ELSE '())
))
Run Code Online (Sandbox Code Playgroud)
输出:
欢迎来到DrScheme,版本4.2.5 [3m].语言:方案; 内存限制:128 MB.
expand:模块中的未绑定标识符:COND
输入:
#lang scheme
(define (quadratic_roots a b c)
(LET (
(root_part_over_2a
(/ (SQRT (- (* b b) (* 4 a c))) (* 2 a)))
(minus_b_over_2a (/ (- 0 b) (* 2 a)))
)
(DISPLAY (+ minus_b_over_2a root_part_over_2a))
(NEWLINE)
(DISPLAY (- …Run Code Online (Sandbox Code Playgroud) 我的目标是在段落中找到类似'b1234'的内容并将其替换为:
<a href=http://bugtracker.com/bug/1234>b1234</a>
Run Code Online (Sandbox Code Playgroud)
我用普通的红宝石制作了这个:
"I fixed b1234 today".gsub(/(b([0-9]+))/i, '<a href=http://bugtracker.com/bug/\2>\1</a>')
Run Code Online (Sandbox Code Playgroud)
它输出:
=> "I fixed <a href=http://bugtracker.com/bug/1234>b1234</a> today"
Run Code Online (Sandbox Code Playgroud)
我在rails视图中有以下内容:
<%= post.content %>
Run Code Online (Sandbox Code Playgroud)
注意:创建帖子时,我不会在我的数据库中存储HTML链接代码.
如果我做:
<%= post.content.gsub(...) %>
Run Code Online (Sandbox Code Playgroud)
我在输出文件中转义了html:
<a href= ... instead of <a href= ...
Run Code Online (Sandbox Code Playgroud)
... 我想要那种行为,我不希望用户发布HTML(iframe会很吓人!).
但是,我怎么能在不牺牲安全性的情况下获得我想要的查找和替换功能呢?也许是Javascript方法?
谢谢!
代码和错误输出:http: //i.stack.imgur.com/S0W3m.png
"遇到错误无法加载请求的驱动程序:CI_Cache_apc"
参考:http: //codeigniter.com/user_guide/libraries/caching.html
注意:使用CI 2.0.2 app/cache和system/libraries/Cache是递归的(文件和文件夹)CHMOD'd 777. lib只是用于测试是否解决了问题,但事实并非如此.
谢谢!