Mar*_*inM 5 c# sql asp.net ado.net
对不起,如果有人在其他地方询问过,但我无法在任何地方找到明确答案.
我决定开始学习使用关系数据库,即SQL.这是一个主要的初学者问题,但它可能是开始的必要条件.
关于如何利用SQL(或其他)的最佳实践,我基本上有点困惑.在大学时,我已经访问了数据库(使用JSON字符串),例如移动应用程序,但我自己从未真正设计和构建过数据库,因为我的导师为我们提供了访问自己的数据库.
假设我有一个C#应用程序,它包含家谱信息(即家庭及其成员),我想将每个人存储在数据库中.我是否只使用我已经拥有的结构但保存到数据库中的字段而不是xml或文本文档?或者它是否以其他方式工作,即我是否创建了一个包含必填字段的数据库,然后从ac#应用程序中的数据库中检索它并按照我的意愿操纵数据,因此应用程序将完全不同(因此c#应用程序基本上并不真正保存/存储任何数据,只是从数据库中获取数据?
令我不安的是,通常我会将我的c#对象存储在字典或列表中,例如,我是否只是直接从数据库中检索?或从中检索并将数据存储到正常结构中并从那里开始工作(当然这会破坏从数据库快速搜索的点)?
我可能会略微过度思考.希望有道理.提前致谢
我会,只是使用我已经的结构......
要么
使用必填字段创建数据库...
我认为这是你问题的症结所在.
对我来说,在构建使用后端数据库的应用程序时,实体关系图非常重要.我在这里找到了一个很好的小教程:http://www.sum-it.nl/cursus/dbdesign/english/index.php3但你可以很容易地找到一个适合你学习风格的教程.关键点在于,您正在尝试以应用程序可以某种方式捕获的方式对问题域(需要您的应用程序的现实世界)进行建模.获得相关表的ER图后,可以更容易地找出详细信息.使用SQL Management Studio for SQL Server 2008(Express版),您可以创建一些基本表并在那里构建ER图,并让它为您生成关系.然后,您可以随意检查用于实现该目的的SQL并进行相应的优化.
就个人而言,我总是首先检查问题域,然后构建ER图,然后构建数据库.当我有理由相信数据库反映问题域时,我开始构建C#应用程序.
然而,真正重要的是你以有意义和有效的方式模拟现实世界.在您的情况下,您已经在C#中创建的结构中有一个起点,您可以使用它们为您提供构建ER图的起点.如果您发现更容易获得C#应用程序,然后构建一个反映它的数据库,那应该没问题.也许您已经有了一种方法可以帮助您有效地捕获问题域.无论你做什么,这都是一个迭代过程:构建C#代码可能会揭示底层数据库设计的问题,反之亦然.
我个人确信整个业务非常复杂,你真的需要一些图表.
当你走向一个正在运行的应用程序时,你会看到这两个图表如何开始匹配或至少反映出其他非常接近的eash.在这两种情况下,理解对象之间关系的(实体或类)在查询数据库时非常重要,因为理解表之间的关系至关重要(特别是使用1对多关系来解决复杂的多对多关系)在查询中连接表的各种技术(INNER或OUTER连接等)无论你的C#应用程序多么聪明,你在某些时候都需要至少理解SQL语言的一些复杂性 - 而且如果你可以参考ER图.
令我不安的是,通常我会将我的c#对象存储在字典或列表中,例如,我是否只是直接从数据库中检索?
在数据库中,毫无疑问.例如,名为Family的AC#类将具有属性FamilyName,例如,内置了setter方法.如果发现拼写错误并想要更改名称,则setter方法将打开与数据库的连接,运行UPDATE查询指定的系列名称(可能还有系列ID)作为参数,并相应地更新基础字段.检索数据将涉及运行SELECT查询等.
做一些关于如何检查问题域,创建实体关系图并根据图构建一组相关表的教程.我相信你会发现更容易跟踪你构建的与后端数据库通信的C#类.
以下是家庭及其成员的简单ER图示例:

首先,您可能会认为成员和家人可能在一个表中,但是您发现这会产生大量重复,因此您将其与一对多关系分成家庭和成员表,但后来您意识到,例如,通过婚姻,人们可以属于不止一个家庭,你需要建立多对多的关系.我认为ER图是解决这种复杂性的最佳位置.
| 归档时间: |
|
| 查看次数: |
1158 次 |
| 最近记录: |