gpt4 book ai didi

.net - 我应该使用枚举还是查询数据库中的表?

转载 作者:行者123 更新时间:2023-12-03 23:48:39 28 4
gpt4 key购买 nike

在我的数据库中,我有定义类型的表,例如

表:出版物类型

身份证 |类型
----------
1 |文章
2 |抽象的
3 |书
……


它通过 ID 键与具有字段 TypeID 的发布表相关联。

然后,我在我的 .NET 应用程序中创建了一个 PublicationTable 数据表,我想根据发布类型对其进行过滤。例如,以下函数为我提供了特定作者和出版物类型的出版物数量。

公共(public)函数 countPublications(ByVal authorID As Integer, _
ByVal PublicationType As Integer) As Integer

将 authPubs 调暗为新 PublicationsDataSet.tblPublicationsDataTable
authPubs = Me.getAuthorsPublications(authorID)

将 dv 调暗为新数据 View (authPubs)
dv.RowFilter = "status='已发布' AND type='"+ _
发布类型.ToString + "'"

返回 dv.Count

结束功能

要调用此函数以获取特定类型作者的文章计数,我可以

  • 用两个整数调用函数

    countPublications(authorID, 1)
  • 设置一个枚举,以便我可以编写

    countPublications(authorID, pubType.Article)

  • 以某种方式使用发布类型表来过滤发布数据集,但我不知道如何做到这一点。

  • 我应该考虑哪些其他方法。

    谢谢

    最佳答案

    如果发布类型本质上是静态的,那么枚举就可以了

    可以说嵌入之间几乎没有区别

    inner join lookuptable lt on lt.id = (int)myenum.sometype 

    在查询中并添加
    inner join lookuptable lt on lt.name = "somehardcodeddescription"

    它们都是嵌入式常量,前者只是在它后面有一个定义明确的类型

    或者你可以使用
    inner join lookuptable lt on lt.name = myenum.sometype.ToString

    我更喜欢前者

    另一方面,如果在部署代码后可能会添加新的查找类型,那么枚举很快就会过时;

    但是如果有代码需要的核心静态枚举值集,其余的无关紧要,那么前一个解决方案仍然可以

    像往常一样,“这取决于”;-)

    关于.net - 我应该使用枚举还是查询数据库中的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/252202/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com