C# 复杂的数据库操作
我为我的ASP.NET应用程序绘制了一个非常简单的数据库设计,在这里和那里得到了一些帮助,我成功地实现了我的设计……但是我想将数据插入到这个表中并从中检索 在我的应用程序中,一个非常重要的函数需要某个记录的所有7个表中的所有信息,有时我需要让我的应用程序接受所有类型的相关数据,并将每个数据放在正确的表中 我的问题是:C# 复杂的数据库操作,c#,asp.net,sql,webforms,C#,Asp.net,Sql,Webforms,我为我的ASP.NET应用程序绘制了一个非常简单的数据库设计,在这里和那里得到了一些帮助,我成功地实现了我的设计……但是我想将数据插入到这个表中并从中检索 在我的应用程序中,一个非常重要的函数需要某个记录的所有7个表中的所有信息,有时我需要让我的应用程序接受所有类型的相关数据,并将每个数据放在正确的表中 我的问题是: 这么大的设计正常吗?对于一个真正的应用程序来说,它甚至很大吗 如果我想添加一个新的孩子,我需要用所有表中相关的必需信息填充所有表,我会有一个带有一些输入的大表单来接受数据,但是我
PS:在每两个表之间有(m:m)关系,考虑一个第三个表(这将在关系中的2个表中的每个表中有两个主键)。 我对连接和所有东西都很熟悉,但从未应用到如此大的设计上……救命! 提前谢谢
尝试回答您的问题:
尝试回答您的问题:
很抱歉吓到您,但这是一个非常小的数据库设计 当我第一次开始需要为web应用程序设计数据库时,我找到了一个拐杖。幸运的是,我当时使用的拐杖现在可以在一个免费工具中使用,它可以与VisualStudio2008或2005(2010支持即将到来)一起使用 我快速猜测了一下您的设计,得到了以下ORM模型: 这导致了一个包含十个表的数据库,包括多对多关系所需的连接表 NORMA工具可以从模型中为几个不同的数据库生成DDL,还可以创建XML模式和LINQ-to-SQL对象
顺便说一句,下面是生成的数据库的ER图:
我不明白为什么您需要将所有这些都放在一个结果集中,但我认为这里有一个查询可能会返回所有这些。我还没有用数据对此进行测试:
SELECT k.KidId, k.Name, k.FavoriteToy,
s.SponsorId, s.Name,
st.SponsorShipTypeCode, st.Description AS SponsortshipTypeDescription,
fw.FieldOfWorkCode, fw.Description AS FieldOfWorkDescription,
Skill.SkillCode, Skill.Description AS SkillDescription,
Parent.ParentId, Parent.Name AS ParentName
FROM Kid k
LEFT OUTER JOIN KidHasParent ON KidHasParent.KidId = k.KidId
INNER JOIN Parent ON Parent.ParentId = KidHasParent.ParentId
LEFT OUTER JOIN KidHasSkill ON KidHasSkill.KidId = k.KidId
INNER JOIN Skill ON Skill.SkillCode = KidHasSkill.SkillCode
LEFT OUTER JOIN Sponsor s ON s.SponsorId = k.SponsorId
INNER JOIN SponsorIsOfSponsorShipType Sst ON Sst.SponsorId = s.SponsorId
INNER JOIN SponsorShipType st ON st.SponsorShipTypeCode = sst.SponsorShipTypeCode
LEFT OUTER JOIN SponsorParticipatesInFieldOfWork sfw ON sfw.SponsorId = s.SponsorId
INNER JOIN FieldOfWork fw ON fw.FieldOfWorkCode = sfw.FieldOfWorkCode
我通过查看ORM图来创建这个查询,以了解哪些路径是可选的(左J)