我是新来ASP.NET而不是编程。我迁移我们目前从PHP / MySQL的网站ASP.NET(3.5)/ SqlServer的。我一直潜伏在这里,因为该网站的推出,所以我相信你们中的一个(或多个)可以帮助我。这里的情景:

这是一个培训部网站和部。具有存储在表course一个课程目录。每个疗程可能有许多先决条件课程,例如,A和B是用于C.我通常存储此无论是作为在course以逗号分隔的列或在一个单独的表或course_prereq作为course_course递归关系的先决条件。这一部分,我能做到的。

然而,业务规则要求每个当然可以具有多组先决条件。前示例中,N要求ABC,或N需要XY。这是我坚持。

以前,我存储在用于行N作为A,B,C|X,Y列此信息,解析的ID到一个PHP 2D阵列,提出第二次查询其ID是该阵列中,然后用PHP分离的那些行中的所有行到各自的组。一旦所有该处理完成后,先决条件的组被显示为在网页上独立的表,像这样:

  

| A | A's information goes here |
| B | B's information goes here |
| C | C's information goes here |
- - - - - - - OR - - - - - - - -
| X | X's information goes here |
| Y | Y's information goes here |

我将如何做到这一点使用ASP.NET?

有帮助吗?

解决方案

添加一个表来保存Prerequisite Sets。该表保存一组ID和关键回的课程表集合中的每个过程。该表可具有用于给定组ID的若干行,所以主键将是该组ID的过程ID。然后在你的course_prereq表你涉及的课程不同的先决条件集。一个OR关系可以假定存在,因为任何ANDs在集合themsevles执行。

其他提示

有一个称为其PrerequisiteSet FKS每个前提条件表。然后有一个Course_PrerequisiteSet多对多表FKS到课程和PrerequisiteSet。大部分时间将只有在Course_PrerequistieSet一个条目,但是,如果有一个以上的,那么这将是一个OR关系。

上述两个问题的答案是非常有益的。最后我只使用一个数据库表,而不是建议的两个。该表包含一个course_idprereq_idset_id,其中所有一起形成的主键。

在ASP.NET页面中,我使用的中继器遍历在SqlDataSource存储过程返回一个过程的先决条件集,该中继器内一个gridview读取从第二SqlDataSource的存储过程的各个先决条件的信息。像这样:

  

RepeaterSqlDataSource(返回集ID),点击     Repeater结果     。 。 。 GridViewSqlDataSource(返回路线信息中集点击每个prereq_id     。 。 。 GridView

希望这有助于其他人在看一个类似的方案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top