【发布时间】:2017-11-22 18:52:27
【问题描述】:
我的 MSSQL 数据库设计有问题。
我有 2 个如下所示的表:
CREATE TABLE tenants
(
tenantId INT PRIMARY KEY,
tenantName VARCHAR
)
CREATE TABLE users
(
userId INT PRIMARY KEY,
userName VARCHAR,
tenantId INT,
FOREIGN KEY (tenantId) REFERENCES tentants(tenantId)
)
为了唯一性,我想从仅 ID 切换到 GUID,并更改了表格。 我读过出于性能原因不建议将 GUID 作为主键。所以我保留了 ID:
CREATE TABLE tenants
(
tenantId INT PRIMARY KEY,
tenantGuid UNIQUEIDENTIFIER,
tenantName VARCHAR
)
CREATE TABLE users
(
userId INT PRIMARY KEY,
userGuid UNIQUEIDENTIFIER,
userName VARCHAR,
tenantGuid UNIQUEIDENTIFIER,
FOREIGN KEY (tenantGuid) REFERENCES tentants(tenantGuid)
)
现在 Entity Framework 正在疯狂地忽略所有关系,因为 guid 不是主键的一部分。
在旧帖子中,我读到这将不受支持。还是不支持吗?
我如何支持解决这个问题?
非常感谢!
也很抱歉格式不好,编辑器不尊重我的换行符:/
很快
【问题讨论】:
-
最后你希望 GUID 成为主键吗?
-
什么具体的 RDBMS 是干什么用的?
SQL只是查询语言 - 许多 RDBMS 使用,例如oracle、postgresql、sybase、db2、mysql或sql-server- 你应该真的告诉我们您正在使用什么具体的 RDBMS -
感谢 Andrew 的格式化!我正在使用 MSSQL 2016 Express
标签: c# sql entity-framework entity-framework-6 guid