在我的团队的一个相当生气勃勃的讨论中,我被认为是大多数人喜欢的主键.我们有以下小组 -
什么是PK的最佳方法?如果你可以证明你的意见,这将是很棒的.上面有没有更好的方法?
编辑:任何人都有一个简单的样本/算法来生成可扩展的行的人类可读标识符?
algorithm ddl database-design primary-key relational-database
可能重复:
您如何看待主键?
我知道使用GUID的好处,以及在数据库中使用和INT作为PK的好处.考虑到GUID本质上是128位INT而普通INT是32位,INT是节省空间(尽管在大多数现代系统中这一点通常没有实际意义).
最后,在什么情况下你会发现自己使用INT作为PK而不是GUID?
似乎" 过早优化 " 这个短语是当时的热门话题.出于某种原因,特别是iphone程序员似乎认为避免过早优化是一个积极的目标,而不是简单地避免分心的自然结果.问题是,该术语开始越来越多地应用于完全不合适的案例.
例如,我看到越来越多的人说不要担心算法的复杂性,因为那是不成熟的优化(例如,帮助在两个属性(使用NSSortDescriptor?)中排序NSArray).坦率地说,我认为这只是懒惰,并且对纪律严明的计算机科学感到骇人听闻.
但是我想到,可能考虑到算法的复杂性和性能正在推动汇编循环展开的方式,以及其他现在认为不必要的优化技术.
你怎么看?我们现在处于决定O(n ^ n)和O(n!)复杂度算法无关的地步吗?那么O(n)vs O(n*n)呢?
您认为"过早优化"是什么?您有意或无意地避免使用哪些实用规则?
编辑
我知道我的描述有点笼统,但我对人们用来避免"预成熟优化"的具体,实用规则或最佳实践感兴趣,尤其是在iphone平台上.
回答这个问题需要您首先回答"什么是预成熟优化?"的问题.由于该定义明显变化很大,任何有意义的答案都要求作者定义该术语.这就是为什么我不认为这是一个CW问题.再说一次,如果人们不同意,我会改变它.