小编typ*_*ef1的帖子

插入具有多个值的外键

我想知道,有没有可能创建一个表,我有一个表接受外键但可能有同一行的多个值.

例如:

Employee(id,name,skillid);
Skill(Skillid,skillname);
Run Code Online (Sandbox Code Playgroud)

这里是Employee的一个实例

Employee(311,"john", (01,02) );
Skill (01,Java); Skill (02,C++);
Run Code Online (Sandbox Code Playgroud)

我为表格实现了相同的制作主键(是,skillid)

但在一个案例中我有一张桌子:

create table Movie (Movie_ID varchar(5),                              
                            Cast varchar(5),
                            foreign key(Cast) references Person(Person_ID), 
                            primary key(movie_id, Cast));
Run Code Online (Sandbox Code Playgroud)

和另一张表:

create table Awards  (Award_Id varchar(5),
                                Person_Id varchar(5), 
                                Movie_Id varchar(5),
                                Award_Name  varchar(30),
                                Year number(4),
                                Organization_Id varchar(5),
                                primary key (Award_id,year,Organization_Id),
                                foreign key(Person_Id) references Person(Person_ID),
--                                foreign key(Movie_ID) references Movie(Movie_ID),
                                foreign key(Organization_Id) references Organization(Organization_Id));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我无法使用Movie_ID作为外键,因为它引用的表具有2个东西的组合作为其主键.我没有在奖项表中使用其中第二个属性.

有何提示如何实施?

database oracle

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

在Query中查找GROUP BY函数的多个属性

我有一张这样的桌子

1   Mo1 4
2   Mo7 2
3   Mo3 2
4   Mo2 2
5   Mo9 2
6   Mo8 1
7   Mo6 1
8   Mo4 1
Run Code Online (Sandbox Code Playgroud)

我有上面的结果使用

select movie_id, count(*) cnt from review Group by movie_id order by cnt desc
Run Code Online (Sandbox Code Playgroud)

但是,如果我想列出cnt> 1的所有movie_id我的查询失败.

有没有办法得到你想要的结果?

sql database oracle

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

Getline to String复制换行符

我正在逐行读取文件并将每行添加到字符串中.但是,对于每一行,字符串长度增加1,我认为这是由于换行符所致.如何将其从复制中删除.

这是我的代码尝试做同样的事情.

if (inputFile.is_open())
{
    {
        string currentLine;
        while (!inputFile.eof())
            while( getline( inputFile, currentLine ) )
            {
                string s1=currentLine;
                cout<<s1.length();
            }
Run Code Online (Sandbox Code Playgroud)

[更新说明]我使用记事本++来确定我逐行选择的长度.所以他们显示了123,450,500,120,我的节目显示124,451,501,120.除最后一行外,所有line.length()都显示增加1的值.

c++ string file-io newline

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

数据结构比较

我正在寻找流行数据结构比较的汇总摘要.在一个地方我可以看到所有数据结构的复杂性,优点和缺点.

data-structures

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

标签 统计

database ×2

oracle ×2

c++ ×1

data-structures ×1

file-io ×1

newline ×1

sql ×1

string ×1