我正在创建一个跟踪收入和结果的表格。我有以下几行
如果我将日期作为主要日期,那么我将无法在同一日期进行多笔交易。我可以将所有行作为主键,但我不确定这是最好的方法。你建议我做什么?我读了一些关于创建自动增量索引的主题,但我想知道我是否可以在不添加其他属性的情况下完成它。 感谢
答案 0 :(得分:0)
将id
列作为主键。这将是您的不可变记录标识符。
你可能也希望拥有某种随机化的事务标识符,例如UUID或从某事物的SHA256哈希派生的值。这样,您可以共享这些标识符,而不会过多地了解数据库结构或数据库中有多少记录。
然后,如果您需要另一个密钥,请将其添加为UNIQUE
索引,或者定义要作为复合密钥强制执行的任何唯一约束。
答案 1 :(得分:0)
您的问题应该是:Surrogate Key vs. Natural Key
在您的情况下,您别无选择,只能使用Surrogate Key:创建一个名为“ID”的新字段,并将其设置为Integer,Autoincrement,Primary Key。
BTW,Microsoft建议使用Surrogate密钥作为一种良好做法。