在设计表时,我养成了一种习惯,即有一列是唯一的,并且我将其作为主键。这可以通过三种方式来实现,具体取决于需求:
数字3将用于较小的查找,大多数是读取的表,这些表可能具有唯一的静态长度字符串代码或数字值,例如年份或其他数字。
在大多数情况下,所有其他表将具有自动递增的整数或唯一标识符主键。
我最近开始使用没有一致的行标识符的数据库,并且主键当前聚集在各个列中。一些例子:
有没有有效的理由呢?对于这些情况,我将始终定义一个标识或唯一标识符列。
此外,还有许多根本没有主键的表。这样做的有效原因是什么(如果有)?
我试图理解为什么表是按原样设计的,这对我来说似乎是一个大麻烦,但是也许有充分的理由。
第三个问题可以帮助我解释答案:如果使用多列组成复合主键,与代理/人工键相比,此方法是否具有特定优势?我主要是在性能,维护,管理等方面进行思考?
我遵循一些规则:
关于代理键与自然键,我参考上面的规则。如果自然键很小并且永远不会更改,则可以将其用作主键。如果自然键很大或可能会更改,则使用代理键。如果没有主键,我仍然会使用代理键,因为经验表明您将始终向表中添加表,并希望您将主键放在适当的位置。
问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我过去曾经做过Java和JSP编程,但是我是Java Server Faces的新手,并且想知道JSF开发是否有一套最佳实践。 问题答案: 一些提示:了解JS
问题内容: 我有一个处于测试版模式的应用程序。此应用程序的模型具有一些带有显式primary_key的类。因此,Django使用字段并且不会自动创建ID。 我认为这是个坏主意(在django admin中保存对象时,请参见unicode错误),我想回过头来为模型的每个类提供一个ID。 我已经对模型进行了更改(将每个primary_key = True替换为db_index = True),并且我想
问题内容: 在向我显示重复项之前,请注意,我已经在网站上进行搜索,发现了 一些 示例,但并非完全针对我的问题:) 在SQL中创建 友谊 表的最佳方法是什么,但是要确保每行都是唯一的,因为无论它们属于哪一列,相同的UserID和FriendID都不会被允许? 我有这个粗略的例子 并有2个外键,分别来自UserID和FriendID。 不过目前,我可以在用户之间插入 两次 Friendship ,从而
我需要来自不同Kafka主题的消费者消息, < li >我是否应该为每个主题创建不同的消费者实例,然后根据分区数量启动新的处理线程。或者 < li >我应该从单个消费者实例订阅所有主题,并且应该启动不同的处理线程 谢啦
问题内容: 我有这张桌子(500,000行) 我正在考虑通过(在所有网站中显示仅1个月的记录)进行每个查询 同时,我想在where子句中添加 像这样的事情: 该查询现在还可以并且没有索引就可以快速进行,但是在尝试使用它时却变得太慢了,所以我使用了该索引 它的工作和变得很快,现在我想喜欢这个 这是 该查询速度太慢的原因,因为 然后我试图删除旧索引并添加此 它也太慢了 如果我仅使用单一索引怎么办?在c
问题内容: 我已经设计网站已有一段时间了,但是在使用PHP和HTML时我还不确定。像这样用PHP和HTML 编写整个文档是否更好: 或拥有一个类似HTML的文件,只需添加PHP: 似乎比HTML 整洁,尤其是在整个页面中使用大量PHP的情况下,但这样做会丢失HTML的所有格式,即IDE中的颜色等。 问题答案: 对此有不同的意见。我认为有两种好的方法: 使用像Smarty这样的模板引擎,它将代码和表