小编Shu*_*hya的帖子

在数据库中存储JSON与为每个键创建一个新列

我正在实现以下用于在我的表中存储用户相关数据的模型 - 我有2列 - uid(主键)和一个meta以JSON格式存储有关用户的其他数据的列.

 uid   | meta
--------------------------------------------------
 1     | {name:['foo'], 
       |  emailid:['foo@bar.com','bar@foo.com']}
--------------------------------------------------
 2     | {name:['sann'], 
       |  emailid:['sann@bar.com','sann@foo.com']}
--------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

这是一个更好的方式(性能明智的,设计明智)比一列,每个属性模型,其中表将不得不像许多列uid,name,emailid.

我喜欢第一个模型,你可以添加尽可能多的字段,没有限制.

此外,我想知道,现在我已经实现了第一个模型.如何对其执行查询,例如,我想获取所有名称为'foo'的用户?

问题 - 在数据库中使用-JSON或每个字段的列存储用户相关数据(请记住数字不固定)的更好方法是什么?另外,如果实现了第一个模型,如何查询数据库如上所述?我是否应该同时使用这两个模型,将查询可能搜索的所有数据存储在一个单独的行中,将其他数据存储在JSON中(是不同的行)?


更新

由于我需要执行搜索的列数不会太多,因此使用这两个模型是否明智?我需要搜索的数据的每列密钥和其他人的JSON(在同一个MySQL数据库中)?

mysql sql database sql-server optimization

184
推荐指数
6
解决办法
13万
查看次数

CSS属性中`auto`值的含义是什么?

autoCSS属性的值是什么意思.当CSS属性的值设置为auto?时会发生什么?

css

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

用c ++生成组合

我一直在搜索使用c ++生成组合的源代码.我找到了一些高级代码,但这仅适用于特定数量的预定义数据.任何人都可以给我一些提示,或者也许是一些想法来产生组合.例如,假设集合S = {1,2,3,....,n},我们选择r = 2.输入将是nr.在这种情况下,程序将生成长度为2的数组,如5 2输出1 2,1 3等.我很难构建算法.我花了一个月的时间思考这个问题.

c++ algorithm combinations

56
推荐指数
4
解决办法
8万
查看次数

即使浏览器支持html5视频,也会显示后备图像

这可能听起来很奇怪,但在这种情况下我还可以显示后备图像吗?

由于移动设备(Android和iOS)中的视频元素会在点击时打开其原生视频播放器应用,因此我想为Android和iOS显示视频的GIF版本(我将其作为后备图片放置).我知道如何通过Javascript检测浏览器是否移动,我只需要一些关于最佳实践的建议.

我在做什么

<video>
    <source mp4>
    <source ogg>
    <source webm>
    <img src="*.gif">
</video>
Run Code Online (Sandbox Code Playgroud)

然后在js

if(site.isMobile()){
    $('video').hide();
    $('video img').show();
}
Run Code Online (Sandbox Code Playgroud)

当然,由于img是内置视频,因此无效.我想我可以克隆img并将其附加到视频元素之前然后隐藏视频元素,如下所示:

if(site.isMobile()){
    $('video img').clone().prependTo('video'); // just some pseudocode
    $('video').hide();
}
Run Code Online (Sandbox Code Playgroud)

这是一个好习惯吗?有没有更简单的解决方案?

javascript jquery html5 html5-video

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

为什么我们需要在C中的字符数组末尾添加'\ 0'(null)?

为什么我们需要在C中的字符数组末尾添加'\ 0'(null)?我在K&R 2(1.9字符数组)中读到过它.书中找到最长字符串的代码如下:

#include <stdio.h>
#define MAXLINE 1000
int readline(char line[], int maxline);
void copy(char to[], char from[]);

main() {
    int len;
    int max;
    char line[MAXLINE];
    char longest[MAXLINE];
    max = 0;
    while ((len = readline(line, MAXLINE)) > 0)
        if (len > max) {
            max = len;
            copy(longest, line);
        }
    if (max > 0)
        printf("%s", longest);
    return 0;
}

int readline(char s[],int lim) {
    int c, i;
    for (i=0; i < lim-1 && (c=getchar())!=EOF && c!='\n'; ++i)
        s[i] = c;
    if …
Run Code Online (Sandbox Code Playgroud)

c arrays string algorithm char

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

Rail Fence Cipher-寻找更好的解决方案

我用Python编写了Rail Fence Cipher.我想知道是否有更好的解决方案.

对于那些不知道什么是铁栅栏密码的人来说,它基本上是一种以一种螺旋方式创建线性图案的方式编写纯文本的方法.示例 - 当"FOOBARBAZ"使用3的键进行轨道围栏时.

F . . . A . . . Z . . .
. O . B . R . A . Q . X
. . O . . . B . . . U .
Run Code Online (Sandbox Code Playgroud)

逐行读取上述螺旋,密文成为"FAZOBRAQXOBU".阅读更多 - 铁栅栏 - 维基百科.

def cipher(s, key, graph=False) :
    down=True
    raw_out=[]
    out=''
    i=0
    for x in range(key) :
        raw_out.append({})
    for pos in range(len(s)) :
        raw_out[i][pos]=s[pos]
        if i==key-1 :
            down=False
        if i==0 :
            down=True
        if down : …
Run Code Online (Sandbox Code Playgroud)

python encryption algorithm cryptography

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

我应该在每次请求时动态生成每个缩略图,还是将它们存储在图像上传中?

问题 - 我想在我的网站上设置图像上传功能.但我想展示原始图像和图像的小缩略图.

选择 - 哪种方式更好 - 在上传图像时在目录中创建单独的图像(缩略图),或者在每次请求图像时通过以固定比例缩小其高度和宽度来显示较小的版本?

我当前是怎么做的 - 后者对我来说听起来更好,因为它不会在磁盘上花费太多,但它必须一次又一次地调整图像大小.你觉得哪一个更好?

这是Web应用程序的一般问题,没有具体的语言.

知道facebook或谷歌怎么做?

问题 - 我的问题是如何生成缩略图并在网站上显示它们 - 通过创建具有较小尺寸的原始图像的副本或通过每次请求时动态生成缩略图.

php upload web-applications image thumbnails

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

无法运行已编译的文件 - bash:./ a.out:权限被拒绝.(我试过chmod)

我已经使用编译了我的C源代码cc test.c,它确实生成了a.out文件.

但是,当我运行它时,我收到此错误 -

bash: ./a.out: Permission denied
Run Code Online (Sandbox Code Playgroud)

我的源不在主目录中,它在不同的FAT-32分区上,所以我已经安装了代码使用以下命令的驱动器 -

$ udisks --mount /dev/sda7 --mount-options umask=022
Mounted /org/freedesktop/UDisks/devices/sda7 at /media/48E9-FD53
$ cd /media/48E9-FD53/C
Run Code Online (Sandbox Code Playgroud)

然后我使用编译我的代码 cc

我也试过了gcc.但我仍然得到同样的错误.

然后我做了 - chmod +x a.out,仍然是同样的问题.还有(chmod 755 a.out)和chmod u+x a.out.

我也尝试使用编译和执行程序sudo.

我也试过 - sudo chown sannidhya:sannidhya a.out.

我已经尝试了谷歌搜索后发现的所有东西,仍然无法让它工作.

如何运行.out文件(不将其移动到主目录)?

注意 - 我使用的是Ubuntu 12.04 LTS.

但这里有一个奇怪的事情,即使在跑步之后chmod +x a.out,在跑步时ls -l a.out,我得到-

-rw-r--r-- 1
Run Code Online (Sandbox Code Playgroud)

当我检查属性时a.out …

c linux permissions ubuntu gcc

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

Python的`in`关键字是否执行线性搜索?

Python如何使用in关键字检查迭代中是否存在给定值.它是否执行线性搜索?喜欢 :

def naive(iterable, val):
    for i in range(len(l)):
        if iterable[i]==val:
            return True
    return False
Run Code Online (Sandbox Code Playgroud)

?或者它有不同的方式.线性搜索除外?

python algorithm keyword

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

无法使用“this”访问该对象。`this` 指向 `window` 对象

我有这个 Javascript 构造函数 -

function TestEngine() {
    this.id='Foo';
}

TestEngine.prototype.fooBar = function() {
    this.id='bar';
    return true;
}

TestEngine.prototype.start = function() {
    this.fooBar();
}

TestEngine.prototype.startMethod = function() {
    inter = setInterval(this.start, 200);
}

var test = new TestEngine();
test.startMethod();
Run Code Online (Sandbox Code Playgroud)

给我这个错误 -

Uncaught TypeError: Object [object global] has no method 'fooBar' 
Run Code Online (Sandbox Code Playgroud)

我尝试console.log发现,当我this.start从内部调用时setIntervalthis指向该window对象。为什么会这样呢?

javascript oop jquery object

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