【发布时间】:2011-08-08 11:05:24
【问题描述】:
我的数据库中有以下三个表,我想在单个 DataGridView 中向用户显示它们:
RecipeNames RecipeValue Ingredient
----------- ------------- ----------
PK Name FK RecipeName
FK IngredientName PK Name
Amount
用户应该看到每个 RecipeName 有一行,第一列是配方名称,以下列为成分名称。每个单元格将包含一个 recipeValue 的数量,每个 Recipe 都有每个成分。此外,用户必须能够通过添加新行来编辑任何单元格添加新配方。应该是这样的:
Name | Ingredient 1 | ... | Ingredient n |
-----------------------------------------------
Recipe1 | 100 | ... | 1000 |
Recipe2 | 200 | ... | 2000 |
目前我正在考虑像这样手动生成和填充网格:
- 为成分表中的每一行添加列
- 为 RecipeNames 中的每个名称添加行
- 根据RecipeValue表填充单元格
然后用户可以添加/修改表中的东西。当他点击“保存”按钮时,我再次遍历数据网格并为每一行执行适当的更新/插入操作。
这可以自动完成吗?您将如何将表绑定到 Datagrid? (我知道数据绑定对于单个表/视图是如何工作的,但是在这种情况下我不知道该怎么做)
也欢迎对设计提出任何意见。
编辑澄清:表格被简化,有更多字段,其中一个 ID 号作为主键,查询将受到其他参数的限制,因此只有少数成分会被列出。我主要想知道如何在数据网格或类似 UI 中呈现这样的表格设计,从而最大限度地减少开发工作。
【问题讨论】:
-
从 UI 的角度来看,如果成分的数量很大,这将是笨拙的。如果存在其他选项,通常要避免水平滚动。您是否考虑过在主表中选择配方并在详细表中编辑成分值的主从表对?
-
表格有点简化,有一个额外的条件适用成分,因此列数是有限的。此外,用户应该能够看到两个收件人之间的差异,而无需单击它们。
标签: c# .net database-design