SQL中的最佳实践对象

本文关键字:对象 最佳 SQL | 更新日期: 2023-09-27 18:30:00

我试着搜索,但找不到正确的答案。我正在创建一个包含许多不同对象的应用程序。这些对象的数据保存在MSSQL数据库中。获取数据的最佳方式是什么?

为了简单起见,我将在这里使用两个对象:ItemObject用户对象

它们都有一个构造函数,可以从数据库中获取数据:

public ItemObject(int ID) //same one for UserObject
{
    //Code to get the data from the database for this particular item
}

ItemObject有一个名为CreatedBy的属性,它是一个UserObject。

现在的问题是,创建ItemObject的最佳方式是什么?我有两种可能的解决方案:

解决方案1:

public ItemObject(int ID)
{
    DataTable dt = dal.GetDataTable("SELECT TOP 1 * FROM Items WHERE ID = @ID")
    this.CreatedBy = new UserObject((int)dt.rows[0]["UserID"])
}

解决方案#2

public ItemObject(int ID)
{
    DataTable dt = dal.GetDataTable("SELECT TOP 1 * FROM Items INNER JOIN Users ON Items.CreatedBy = Users.ID WHERE Items.ID = @ID")
    this.CreatedBy = new UserObject((int)dt.rows[0]["UserID"], dt.rows[0]["Username"].ToString())
}
public UserObject(int ID, string Username)
{
    this.ID = ID;
    this.Username = Username;
}

在解决方案#1中,我要求两次数据,但在解决方案2中,我要求一次数据。尽管解决方案#1更"干净",更易于阅读。

经史蒂文更正后编辑。

SQL中的最佳实践对象

我会选择解决方案二。从我的角度来看,解决方案1是不可接受的,尽管它"更干净"。我认为对物体的阅读没有最佳的实践。为此,我非常喜欢实体框架。