【问题标题】:About database keys关于数据库键
【发布时间】:2013-08-13 12:40:47
【问题描述】:

我正在尝试找出一种方法来设计我的 SQL Azure 数据库。有很多关于主键应该是什么(int 与 guid)以及两种方法的优缺点的信息,所以我知道那里正在进行的战争:)

但是,我想通过在我的表格中添加以下三列来应用两全其美:

  • 内部标识
    • int 类型的标识
    • 定义为聚集索引
    • 用于连接
    • 数据库生成的默认值
    • 仅在表中唯一
    • 仅供内部使用
    • 永远不会改变
  • 外部标识
    • 指南
    • 客户端(或域)生成的默认值
    • 全球唯一
    • 内部和外部使用。
    • 永远不会改变
  • 网址标题
    • 一个字符串
    • 由域生成
    • 仅在表中唯一
    • 在公共 url 中使用的实体的用户友好表示
    • 可以改变(但最好不要改变)

通过这样做,由于 InternalId,它将具有整数主键的性能,但由于 ExternalId,它仍然足够灵活。

我不是数据库专家,远非如此,所以我想听听您的意见,这是否可行,或者只是荒谬可笑?

【问题讨论】:

    标签: sql-server database database-design primary-key azure-sql-database


    【解决方案1】:

    在一个表中使用多个不同的键用于不同的目的并没有什么不寻常的。确保您强制执行所有具有唯一性约束的键并创建适当的索引。确保您的开发人员了解每个密钥的用途并以一致的方式使用它们。

    【讨论】:

    • 谢谢,我自己也是开发者,所以我可以控制一切。我只是想知道这种方法是否被视为“可接受”的设计。
    猜你喜欢
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多