首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL中实现C#迁移代码

问在SQL中实现C#迁移代码
EN

Stack Overflow用户
提问于 2015-02-26 15:20:43
回答 1查看 51关注 0票数 1

我对SQL很陌生,今天我被分配了一项重要任务--为表中的数据创建一个迁移脚本。据我理解,迁移脚本正在复制表A中的数据,并将其移动到其他表B和C等。当数据库设计不断变化,并且团队希望保存数据时,这种情况似乎很常见。

我的任务是:我有一个带有JobOffer字段的CityId表。现在,团队希望删除该字段,并保留信息,将CityId添加到Address表中,并使用名为Location的插入表连接两个表(这允许JobOffer具有多个地址)。

​

​

我不知道该如何完成这项任务。在c#中,我所代表的是这样一个类比:

代码语言:javascript
复制
foreach (var row in JobOffer)
{
    int addressId;
    if (!Address.Contains(row.CityId)){
        addressId = Address.add(row.CityId);
        Locaion.add(row.JobOfferId, addressId);
    }
    else
    {
        Locaion.add(row.JobOfferId, Address.get(row.CityId));
    }
}

我如何在SQL中做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-26 15:44:27

你需要三张桌子--一张是候选人的,一张是地址(地点),另一张是连接两个的。第三个表是必要的,因为您描述的是一个多到多的关系。单个候选可以具有多个位置,单个位置可以容纳多个候选。

当我创建与您类似的数据时,它对输入数据进行了两次扫描:第一次检查是否有所有位置。如果有遗漏,我就把它插入到location表中。

第二次扫描将数据插入候选人和烛光表。在这一点上,我肯定知道,我有一个地址,每一个候选人在位置表。

以下是表的说明:

创建表候选项(候选人身份主键,idate datetime默认值getdate(),name varchar(200))

创建表的候选点(candidateid int,locid int)

创建表位置(松散int标识主键、城市varchar(500)、状态varchar(500))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28746205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档