数组数据类型插入mysql

3htmauhk  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(374)

在使用mysql处理yelp数据集时,我遇到了一个有趣的问题,显然我想运行一些查询,在user.json文件中描述了一个“数组”数据。
如何将这个“数组”存储在mysql表中?
根据mysql的数据类型存储参考文档,似乎没有一种数据类型会给出这样的结果。
//字符串数组,作为用户ID的用户朋友数组
“朋友”:[“wqox…”,“kuxl…”,“6e9r…”]
到目前为止,我正在做一个简单的模型来关注用户表,我的创建语句:

create table Friends(
friends VARCHAR(255),
primary key (friends));

create table User(
userid VARCHAR(22),
primary key (userid),
friends VARCHAR(22),<--- user-id is 22 so friends-id is 22
foreign key (friends) references UserFriends (friends));

一些有趣的示例数据:

insert into User("abcde-ghijk-mnopq-stuv","NONE"); <- person1, no friends
insert into User("abcde-ghijk-mnopq-stuw","abcde-ghijk-mnopq-stuv"); <- person2, person1 friend

也许为了达到这个效果我不得不使用数据库规范化的方法?

pkbketx9

pkbketx91#

这个 Friends 表应包含引用 Users :

CREATE TABLE Friends (
    user1 VARCHAR(22),
    user2 VARCHAR(22),
    PRIMARY KEY (user1, user2),
    CONSTRAINT user1 REFERENCES User (userid),
    CONSTRAINT user2 REFERENCES User (userid)
);

此表中的一行表示 user1 以及 user2 他们是朋友。
一般来说,您应该避免将列表放入表列中,这违反了第二范式。

相关问题