【问题标题】:SQL junction table naming: making it readable vs. following convention [closed]SQL 联结表命名:使其可读与遵循约定[关闭]
【发布时间】:2018-06-11 01:12:47
【问题描述】:

考虑以下“用户”表:

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

现在我有一个多对多参考表,它连接 2 个用户 “跟随”关系(顺便说一句,这不是双向关系)。

我已经阅读了很多关于在 sql 中命名的内容,但大多数时候是 确实不一致(有人说是 PascalCase,比如一些蛇形大小写)。

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

可读性>约定:

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 个相关用户(例如阻塞表),这就是为什么我不确定命名(连接)表的正确方法是什么。

也许还有另一种方法可以在保持可读性的同时遵循约定。我很感激每一个提示。

【问题讨论】:

标签: sql database sqlite naming create-table


【解决方案1】:

每次都追求可读性。善待维护你的sql代码的人;从现在起 6 个月后可能是你。另外,请检查您遵循的“约定”来自何处。任何人有什么理由来定义一个消除对您正在做什么的任何解释的约定(如第二个示例)?
您可能会发现这很有帮助:the names we give things

【讨论】:

  • 谢谢,我不确定,因为我对一切 sql 都比较陌生,所以你的回答很有帮助!
猜你喜欢
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
  • 1970-01-01
  • 2011-02-16
  • 1970-01-01
  • 2012-08-08
相关资源
最近更新 更多