SQL联结表命名:使其可读与遵循约定

时间:2017-12-31 11:49:31

标签: sql database sqlite naming create-table

考虑以下"用户"表:

CREATE TABLE user (
    user_id INTEGER PRIMARY KEY NOT NULL,
    nick_name TEXT NOT NULL UNIQUE
)

现在我有一个多对多的参考表,它连接了一个用户的2个用户 "以下"关系(这不是双向关系)。

我已经阅读了很多关于在sql中命名内容的内容,但大多数时候它都是 真的不一致(有人说PascalCase,有些像蛇一样。)。

我的问题是,以下哪个命名更好?

readablity>约定:

CREATE TABLE user_following_user (
    follower_user_id INTEGER NOT NULL,
    target_user_id INTEGER NOT NULL,
    FOREIGN KEY ...
    PRIMARY KEY ...
)

惯例>可读性:

CREATE TABLE user_user_xref (
    user1_id INTEGER NOT NULL,
    user2_id INTEGER NOT NULL,
    FOREIGN KEY ...
    PRIMARY KEY ...
)

请记住,可能还有其他表格也有2个用户(比如阻止表),这就是为什么我不确定正确的命名方式(结点)表。

也许还有其他方法可以遵循惯例,同时保持可读性。我很感激每一个提示。

1 个答案:

答案 0 :(得分:2)

每次都要考虑可读性。善待维护你的sql代码的人;可能是你在6个月后。另外,请检查您所关注的“惯例”来自何处。任何人都有什么理由来定义一个会议,消除对你正在做的事情的任何解释(如第二个例子)? 您可能会发现这有用:the names we give things