Sua*_*uan 5 database-design api-design primary-key uniqueidentifier
我们正在设计一个带有外部API的HTTP服务,它需要存储一些外部API消费者可能需要稍后检索的项目.所有内容都存储在一个表中foos,当前计划只是使用表的主ID键作为外部唯一标识符.我的直觉告诉我这是一个糟糕的设计,但我无法有效地论证我的情况,部分原因是因为我无法明确说明原因.
以下是迄今为止我能想到的唯一缺点:
还有其他主要缺点,还是我只是偏执狂?也会欣赏一些链接到发表的文章,谈论这个!
我会继续说,如果您的数据库被锁定,这比无关紧要,除非:
我敢肯定,你已经知道的是,采取措施防止SQL注入将阻止任何人利用这一信息优势,但是知道索引范围可能意味着有人会知道,少1或1以上的索引范围是有形的关键用于访问您的API.
如果您可以在不登录的情况下通过URL访问API,那么使用索引范围是不好的.
http://mysite.com?APIkey=145
如果我知道我的密钥是145,那么144和146可能也可以拨打电话.
使用GUID方案是解决这个问题的方法,但是你正在做出其他牺牲:
ID(索引): 145
ID(GUID): C87FC84A-EE47-47EE-842C-29E969AC5131
或者最后,您可以添加另一列以将随机哈希保存为您所说的唯一API密钥:
ID(哈希): da39a3ee5e6b4b0d3255bfef95601890afd80709
| 归档时间: |
|
| 查看次数: |
1393 次 |
| 最近记录: |