一般来说,我对数据库很陌生,但需要一些建议。我有一个数据库,大约有6000条记录(而且数量还在增长,但并不疯狂)。我想构建一个API,这样我就可以检索房产的价格历史,但有人建议我需要一个唯一的ID,但我不太确定。有人能提出建议吗?
DB如下所示:
|地址|价格|创建日期|状态|
| ------------ | ------------ | ------------ | ------------ |
|地址1,主要街道| 15万英镑| 2022年10月13日|新数据|
|地址1,主要街道|£140000 | 2022年10月16日|更新数据|
|地址二,小路| 350000英镑| 2022年10月13日|新数据|
2条答案
按热度按时间bgtovc5b1#
您可能会发现整数主键很有用,但它不是必需的。
如果地址足以成为引用任何行的唯一列,那么就可以了。它被称为“自然键”。在实践中,我们大多数人都经历过,任何你认为应该是唯一的列最终都不是100%唯一的。因此,许多开发人员建议添加一个“伪密钥”,它没有理由不唯一。
在我的书SQL Antipatterns, Volume 1: Avoiding the Pitfalls of Database Programming中,我写了一章“需要ID”,描述了伪密钥和自然密钥的优缺点。
bvk5enib2#
可能您需要使用CRUD添加/编辑数据,可能需要引用其他表,制作外键等。我建议您添加主键。我从未处理过没有主键的表。
我在2001年听到我的数据库老师说:如果你不想让你的表只是另一个excel表,那么你应该总是有一个
primary key
和another unique key
,而不是主表(复合表或单列表)。我记得这是用内射函数对这条规则的数学证明。当然,你可以忽略这些规则,但它们是对你未来自我的最佳实践建议:)