小编Bil*_*eal的帖子

如何将 IS-A 关系映射到数据库中?

考虑以下:

entity User
{
    autoincrement uid;
    string(20) name;
    int privilegeLevel;
}

entity DirectLoginUser
{
    inherits User;
    string(20) username;
    string(16) passwordHash;
}

entity OpenIdUser
{
    inherits User;
    //Whatever attributes OpenID needs... I don't know; this is hypothetical
}
Run Code Online (Sandbox Code Playgroud)

不同类型的用户(直接登录用户和OpenID用户)表现出IS-A关系;也就是说,这两种类型的用户都是用户。现在,有几种方法可以在 RDBMS 中表示:

方式一

CREATE TABLE Users
(
    uid INTEGER AUTO_INCREMENT NOT NULL,
    name VARCHAR(20) NOT NULL,
    privlegeLevel INTEGER NOT NULL,
    type ENUM("DirectLogin", "OpenID") NOT NULL,
    username VARCHAR(20) NULL,
    passwordHash VARCHAR(20) NULL,
    //OpenID Attributes
    PRIMARY_KEY(uid)
)
Run Code Online (Sandbox Code Playgroud)

方式二

CREATE TABLE Users
(
    uid INTEGER …
Run Code Online (Sandbox Code Playgroud)

database-design

26
推荐指数
2
解决办法
3万
查看次数

MySQL如何从存储过程返回结果集?

我正在尝试了解在 Web 应用程序中使用的存储过程。在我看来,MySQL 存储过程中的最后一条语句似乎被视为该过程的结果集。不幸的是,MySQL 文档中似乎有一些引用说一个过程可以返回多个结果集。这种行为是如何触发的?如何告诉 MySQL 服务器我明确希望只返回一个结果集?

(例如,我有一个执行 SELECT 和一些插入的查询。我不想告诉客户有关插入的信息,但我确实希望为客户提供 SELECT 的结果集......)

mysql stored-procedures

16
推荐指数
1
解决办法
11万
查看次数

标签 统计

database-design ×1

mysql ×1

stored-procedures ×1