数据库ID列或代码列

时间:2018-06-08 11:30:14

标签: c# database-design

我正在开发一个我必须实现一些新功能的项目。 在这个过程中,我必须设计一些表并为这些数据构建一些编辑器。 我有一个表类别和一个类型。

在客户端,我必须使用这些类型构建一些列表,但每个列表必须只使用一个类别的类型。 我不喜欢在我的C#中使用PK的想法。我希望在类别表中创建一个列名“Code”,并在准备列表时在我的C#代码中使用它。

编辑:我不是说删除PK(我将有一个int base Id列)。我的意思是在类别(“代码”)中添加另一列,以便将C#中的jsut用作字符串常量,而不是ids。

这是个好主意吗?

1 个答案:

答案 0 :(得分:0)

如果我理解了您的问题,我会建议您使用以下结构:

Table Category
    ID Int                     -- primary key
    Code Varchar(8)            -- Code value displayed to users
    Description Varchar(100)


Table Item
    ID Int                     -- primary key
    CategoryID Int             -- foreign key to Category
    Code Varchar(8)            -- Code value displayed to users
    Description Varchar(100)

这样,如果您更改类别记录的代码,则幕后不会发生任何变化,并且密钥值永远不会向您的用户公开。