将语义数据存储在ID中总是一个糟糕的主意吗?

Ema*_*sev 4 mysql database-design

这里有几个(不完整的)数据库表,用于存储有关酒店房间的信息.他们存储的信息是相同的,但他们的设计是不同的:

  1. 将楼层信息存储在单独的列中:

    | id | floor 
    |----|-------
    | 1  | 1 
    | 2  | 1 
    | 3  | 2 
    | 4  | 2 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将楼层信息存储在ID中.

    | id 
    |-----
    | 101  
    | 102  
    | 201  
    | 202
    
    Run Code Online (Sandbox Code Playgroud)

以表2的方式将ID中的语义数据存储在ID中是否总是一个可怕的想法,或者是否有更具表现力的ID足以证明其合理性的情况?

Bil*_*win 5

如果要使用自然键,请使用自然键.不要命名自然键id.

如果使用合成键,请将其视为必须唯一的任意值,但没有其他含义.