我为我的ASP.NET应用程序绘制了一个非常简单的数据库设计,在这里和那里的帮助下,我设法实现了我的design...but,我想要将数据插入到这个表中并从它们中检索。

在我的应用程序中,一个非常重要的功能将需要所有7个表的所有信息来记录某一记录,有时我需要使我的应用程序接受各种相关数据,并将每一块数据放在正确的表中。
我的问题是:
PS:在每两个具有(M:M)关系的表之间,考虑第三个表(该表将在关系中的两个表中各有两个主键)。
我对JOIN和所有东西都很熟悉,但从来没有在这么大的design...HELP上应用过!提前感谢!
发布于 2010-12-08 21:12:50
很抱歉吓到你了,但这是一个非常小的数据库设计。
当我第一次需要为web应用程序做数据库设计时,我发现了一个拐杖。幸运的是,我当时使用的拐杖现在可以在一个免费工具诺玛中使用,它可以用于Visual 2008或2005 (2010支持即将到来)。
我快速猜测了您的设计,得到了以下ORM模型:

这导致了一个包含十个表的数据库,包括许多到多个关系所必需的连接表。
NORMA工具可以从模型中为几个不同的数据库生成DDL,还可以创建XML模式和LINQ对象。
顺便说一下,下面是生成的数据库的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图,知道哪些路径是可选的(左联接),然后使用一个工具(ApexSQL编辑)来帮助我构建联接。这花了不到十分钟。
发布于 2010-12-08 20:52:07
发布于 2010-12-08 20:52:57
试着回答你的问题:
https://stackoverflow.com/questions/4391933
复制相似问题