使用包含具有相同名称的列的SQL表是不是很差的编码实践?

Bob*_*ise 2 sql coding-style readability conventions

例:

CREATE TABLE ErrorNumber
(
     ErrorNumber int,
     ErrorText varchar(255),
)
Run Code Online (Sandbox Code Playgroud)

这可能导致查询看起来像:

SELECT ErrorNumber FROM ErrorNumber WHERE ErrorNumber=10
Run Code Online (Sandbox Code Playgroud)

Rya*_*yer 10

我假设ErrorNumber作为表中的列是主键?在这种情况下,您可以将表列命名为ErrorNumberID.

我不知道它是一个糟糕的编码实践,但我无法想象它为了可读性而做任何事情.您提供的示例非常适合显示查询最终会如何混乱.

我不确定的另一件事是(如果列名与表名相同)会导致错误吗?我确定它因供应商而异.


dwc*_*dwc 5

CREATE TABLE Errors (
    Number int,
    Description varchar(255)
)
Run Code Online (Sandbox Code Playgroud)

我觉得上面是一个更好的命名方案,因为:

  • 表名现在代表它是什么.
  • 由于它们所在的表,列中不需要单词"Error".