小编pgp*_*lla的帖子

在为数据库设计关系时,为什么要避免循环?

有人告诉我,在数据模型中有循环是不好的设计.我曾经多次听过这个,但没注意到.例如,您有实体User,Project,Activity.项目由用户拥有,因此我们拥有从用户到项目的一对多关系.可以将活动分配给单个用户,这是从用户到活动的另一个一对多关系.当然,项目由一组活动定义,这是从项目到活动的另一个一对多关系.因此形成环.

我问这个家伙为什么设计不好但他告诉我他也不知道,他也被告知,猴子学习它是最好的.

我试过搜索,但我想我没有使用正确的单词,但在我看来这对于试图设计数据库的人来说应该是一个基础.

那么,任何人都可以向我指出一些有关er/db图中循环/循环的有用信息吗?

database database-design loops data-modeling entity-relationship-model

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

在Meteor项目中使用ES6`import`和CSS/HTML文件:bug或功能?

我正在学习Meteor,我发现了一些让我着迷的东西.

我可以使用import语句从JS文件加载HTML和CSS资源.

import '../imports/hello/myapp.html';
import '../imports/hello/myapp.css';
import * as myApp from '../imports/hello/myapp.js';
Run Code Online (Sandbox Code Playgroud)

这对我来说是一个惊喜所以我跑到谷歌但是在ES6规范import或Meteor的文档中找不到这种行为.

所以我的问题是:

  • 我可以依靠这种行为来构建我的应用程序吗?
  • 当Meteor到处修复它时,我的应用程序会破坏 - 如果它是一个bug - ?

笔记

  • 我正在使用Meteor v1.3,不确定这是否也适用于以前的版本.
  • 您可以从Github下载该应用程序以查看此行为

html css import meteor ecmascript-6

15
推荐指数
1
解决办法
4851
查看次数

Javascript:关于如何定义新数据类型的一些指导原则是什么?

假设您正在创建数据类型并公开其行为.

你能举一些例子说明你会在什么时候使用:

  • 一个功能和新:

    // define new data type
    var CustomDataType= function(){ 
                          this.a='whatever';
                          this.doX= function(){/*some code*/};
                        }
    
    // create a new instance of our custom data type
    var obj= new customDataType();
    
    Run Code Online (Sandbox Code Playgroud)
  • 对象文字&Object.create:

    // define new data type
    var customDataType = {
                           a: 'whatever',
                           doX: function(){/*some code*/}
                         }
    
    // create a new instance of our custom data type
    var obj= Object.create(customDataType);
    
    Run Code Online (Sandbox Code Playgroud)
  • 构建对象的函数:

    function customDataTypeFactory(options){
      return {
               a: 'whatever',
               doX: function(){/*some code*/}
             }
    };
    
    // create a new instance of our custom data …
    Run Code Online (Sandbox Code Playgroud)

javascript types

9
推荐指数
1
解决办法
4603
查看次数

grunt-karma调试未经授权的来源

我记得在过去的某个时刻,我可以使用Chrome Dev Tools调试我的测试并进入我的未经授权的来源.

我不确定这是否是一个已更改的配置选项,但现在每当我尝试使用Chrome调试我的测试时,我只看到缩小的来源.

我需要设置一个选项来查看未经授权的来源吗?

debugging gruntjs karma-runner

9
推荐指数
2
解决办法
3974
查看次数

为什么我可以在 JavaScript 中定义两次相同的函数?

我有一个 javascript 文件,在其中编写了一堆 jquery 函数。我有一个返回角度范围的函数。我发现如果我将同一个函数编写两次,代码仍然会执行。

function getngScope()
{
    alert(2);
    return angular.element($('#data-area')).scope();
}

function getngScope()
{
    alert(1);
    return angular.element($('#data-area')).scope();
}
Run Code Online (Sandbox Code Playgroud)

当我打电话时,getngScope()我收到“1”警报并返回范围。为什么它有这种行为?

javascript function overwrite

6
推荐指数
2
解决办法
5255
查看次数

UIView的自定义边框使用CALayer和autolayout

我必须为UIView绘制自定义边框.

我已经有代码可以做到这一点,但它是在我们开始使用autolayout之前编写的.

代码基本上添加了宽度/高度= 1.0f的子图层

-(void)BordeIzquierdo:(UIColor *)pcColor cfloatTamanio:(CGFloat )pcfloatTamanio
{
    CALayer* clElemento = [self layer];
    CALayer *clDerecho = [CALayer layer];
    clDerecho.borderColor = [UIColor darkGrayColor].CGColor;
    clDerecho.borderWidth = pcfloatTamanio;
    clDerecho.frame = CGRectMake(0, 1, pcfloatTamanio, self.frame.size.height);
    [clDerecho setBorderColor:pcColor.CGColor];
    [clElemento addSublayer:clDerecho];
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,使用自动布局,这发生在layoutSubViews之前.因此它UIView.layer.frame是(0,0; ​​0,0),因此它没有显示添加的子层,因为它具有宽度/高度= 0.0f

现在,我怎样才能使这个代码,而这个定义绘制转移到后执行的另一种方法viewDidLoad,如didLayoutSubviews.

我想在viewDidLoad调用之前正确应用这个样式.

  • 我可以使用自动布局约束CALayers吗?
  • 还有其他想法吗?

calayer uiview autolayout

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

你为什么要用Git跟踪一个空目录?

我见过的人加入.gitkeep,.keep在一个Git回购在空目录中的文件,我只是不明白为什么我会永远需要跟踪EN空目录.

你能举一些必要的例子吗?

有关

.gitignore和.gitkeep有什么区别?

git directory version-control

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

Mocha接口:未捕获的ReferenceError:`describe`未定义

我正在使用Gulp与mocha/sinon/chai和jquery运行业力

我的karma.conf.js有:

// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jquery-2.1.0', 'mocha'],

// Plugin specific config
client: {
  mocha: {
    reporter: 'spec',
    ui: 'tdd'
  }
}
Run Code Online (Sandbox Code Playgroud)

并且安装的节点模块是

"devDependencies": {
    "chai": "",
    "gulp": "",
    "gulp-jslint": "",
    "gulp-notify": "",
    "gulp-phpunit": "",
    "gulp-util": "",
    "karma": "",
    "karma-chai": "",
    "karma-chrome-launcher": "",
    "karma-cli": "",
    "karma-firefox-launcher": "",
    "karma-ie-launcher": "",
    "karma-jquery": "",
    "karma-mocha": "",
    "karma-opera-launcher": "",
    "karma-safari-launcher": "",
    "karma-sinon": "",
    "mocha": "",
    "sinon": "*"
}
Run Code Online (Sandbox Code Playgroud)

但是当我跑到业力时,我得到了这个错误

"C:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1.5\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" C:\path\to\my\project\node_modules\gulp\bin\gulp.js --color --gulpfile …
Run Code Online (Sandbox Code Playgroud)

mocha.js karma-runner karma-mocha

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

Python - 像Ruby一样在列表的中间插入列表的所有元素

在Ruby中我可以做到:

irb(main):002:0> [1, 2, 3, *[4, 5], 6, 7]
=> [1, 2, 3, 4, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud)

是否有Python等价物?Ruby语法在Python中无效:

>>> l = [1, 2, 3, *[4, 5], 6, 7]
  File "<stdin>", line 1
    l = [1, 2, 3, *[4, 5], 6, 7]
              ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我知道我可以做下面两个选项,但我更喜欢Ruby方式.

Python - 选项1

l = [1, 2, 3]
l += [4, 5]
l += [6, 7]
Run Code Online (Sandbox Code Playgroud)

Python - 选项2

l = [1, 2, 3, 6, 7]
l = l[:3] + [4, 5] + l[3:]
Run Code Online (Sandbox Code Playgroud)

python list

0
推荐指数
1
解决办法
63
查看次数