我正在构建一个列表类型,让用户在我的系统中创建各种事物的列表。因此,列表元素需要引用它们所指向的对象的类型和标识符。
例如,我将允许用户制作产品列表。因此,列表元素需要知道它们持有的是产品(因此查看产品表),并且需要产品ID。
列表将存储的一些东西将具有非数字标识符。
那么,我应该把我的id/类型对在列表元素,或者我应该创建一个新的表,创建一个代理键为id/类型对作为一个简单的int和使用…?
代理键将需要额外的查找/连接来获得键对,但是我不需要将两列混合到我的列表元素表中。
我不确定您是否打算进行任何类型的统计或报告,但我总是发现将主键保留为一列很有用。我总是创建一个自动递增的整数作为pk。表应该是一个存储区域,只是"数据"。越简单越好。随着应用程序的发展,你不知道你想对它做什么,所以保持简单可以让你随着时间的推移更灵活。