我有一个如下格式的数据库:
URLID USERNAME URL
0 jake abc.com
1 jake 123.com
2 po google.com
3 po googl3.com
4 po ranoutoffakeurlslol.com
然而,我希望它是这样的:
USERNAME URLS
jake {abc.com, 123.com}
po {google.com, googl3.com, ranoutoffakeurlslol.com}
我该怎么做?如果不可能,那么,如何使方法1更有效?提前感谢!
我个人不想用后一种格式建立数据库,因为每当您想从中提取数据时,它都会引入大量格式问题。
通常,我要做的是将数据拆分为两个或三个表,这取决于是否可以将did用户名与同一URL关联。如果他们不能(一对多关系),我将构建两个表:
USERS
USERID USERNAME
0 jake
1 po
URLS
URLID USERID URL
0 0 abc.com
1 0 123.com
2 1 google.com
3 1 googl3.com
4 1 ranoutoffakeurlslol.com
或者,如果URL可以有不同的用户(多对多),则用户将是相同的,但URL将是:
URLS
URLID URL
0 abc.com
1 123.com
2 google.com
3 googl3.com
4 ranoutoffakeurlslol.com
还有第三张桌子可以加入他们
USERURLS
USERID URLID
0 0
0 1
1 2
1 3
1 4
这种方式看起来有点复杂,但重复的数据更少(只有int而不是字符串),并且以后更容易扩展,例如如果您想在用户名中添加地址、电话号码、密码或其他任何内容。如果您不熟悉,我会研究关系数据库的普通表单(NF)。(维基百科文章)
由于这是一种一对多关系(即一个用户可以与多个URL相关联),您应该创建一个单独的表来存储URL:
URLID USERNAME
1 jake
2 po
URLID URL
1 abc.com
1 123.com
2 google.com
2 googl3.com
2 ranoutoffakeurlslol.com
有没有办法在mysql表中创建数据类型“数组”的列?如下所示:
我有一个对象数组,如下所示; 我想把它转换成下面的对象 在Javascript或Angular 4中有没有同样的方法?
当我打印出 我得到的回报是:
我有两个不同的数组,我想删除第二个数组中第一个数组元素的所有副本。我尝试了一些拼接和索引的方法,但没能实现。查看了一些其他帖子,但找不到我真正想要的。下面是一个示例代码。谢谢大家。
当我试图比较两个int数组时,即使它们完全相同,中的代码仍然没有执行。这是为什么?
问题内容: 我想使用构造函数制作对象数组的深层副本。 但是,由于某种原因,我上面的内容不起作用。我有运行的自动化测试,但未通过这些测试。所以这里有一个错误,我不确定是什么。 问题答案: 您已实现的是 浅表 副本。要实现 深度 复制,您必须进行更改 一些事情,分配一个 副本 的到。您如何执行此操作取决于班级。可能的替代方法是: 复制构造函数: 工厂方法: 克隆: 笔记: 上面假设复制构造函数,工厂方