我的意思是通过 ID、代码或在数据库中指定类名来引用特定的数据库行。例子:
您有一个名为SocialNetwork
. 这是一个查找表。该应用程序不会写入或删除它。它主要用于数据库完整性;假设整个shebang看起来像这样:
SocialNetwork table:
Id | Description
-----------------------------
1 | Facebook
2 | Twitter
SocialNetworkUserName table:
Id | SocialNetworkId | Name
---------------------------------------------------
1 | 2 | @seanssean
2 | 1 | SeanM
在您的代码中,需要为 Facebook 用户执行一些特殊的逻辑。我通常做的是在代码中创建一个枚举或一些类常量以轻松引用它,例如:
if (socailNetwork.Id == SocialNetwork.FACEBOOK ) // SocialNetwork.FACEBOOK = 1
// special facebook-specific functionality here
这是一个硬编码的数据库 ID。这不是一个巨大的犯罪,因为它只是引用一个查找表,但数据和逻辑之间不再有清晰的划分,这让我很困扰。
我能想到的另一种选择是在数据库中指定类或委托的名称,但这更糟糕的是 IMO,因为现在您不仅打破了数据和逻辑之间的划分,而且还把自己绑在了一个现在的语言。
我是在无事生非吗?