我继承了一个要迁移到 SQL Server 的 Access 数据库。在数据库中有很多标签或分类列。例如,订单表可能具有状态属性,供应商可能具有评级属性。大多数对它们没有真正的业务逻辑,它们本身不是实体,它们都只是允许用户标记和搜索的描述符。
一方面,我认为这些描述符应该放在他们自己的表中,并使用外键引用。然后在我的应用程序代码中,我可以使用与代理 id 匹配的枚举。为什么?因为我可以轻松添加它们,轻松更改值,也许可以节省一些空间。
Order { OrderId int, CustomerId int, StatusId int}
Status { StatusId int, Name varchar(50)}
另一方面,因为许多这些属性永远不会改变,永远不会被添加,而且我还有很多其他的事情要做,我想我应该离开它。
Order{OrderId int, CustomerId int, Status varchar(50)}
第一个选项是否高于它应该始终完成的方式?第二个选项可以接受吗?我认为保留它的唯一缺点是表会更大一些,并且字符串比较可能不如 int 比较快。