【发布时间】:2016-11-04 06:33:28
【问题描述】:
假设我正在与 Steam 用户合作,每个用户都有一个独特的SteamID。我还需要一个单独的id 列作为主键,还是可以只使用 SteamID? IE。这够了吗(使用Flask-SQLAlchemy):
class User(db.Model):
steamid = db.Column(db.String(20), primary_key=True, unique=True)
name = db.Column(db.String(120))
# more stuff
或者我是否仍应包含一个独特的 id,如 Flask-SQLAlchemy's examples 中所示:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
steamid = db.Column(db.String(20), unique=True)
name = db.Column(db.String(120))
# more stuff
如果是这样,为什么?
【问题讨论】:
-
反对它的主要论据是性能,整数主键通常查询和使用更快。
-
如果这真的是主要原因并且没有(真正的)功能差异,我不介意您将其发布为答案@FranciscoCouzo
标签: python sql database primary-key flask-sqlalchemy