代码之家  ›  专栏  ›  技术社区  ›  Miyagi Coder

域实体属性名称

  •  1
  • Miyagi Coder  · 技术社区  · 17 年前

    对于域实体,属性名称是否应以实体名称开头?也就是说,我的班级仓库有一个物业仓库编号。该属性应该命名为仓库编号还是简单的编号?

    思想?

    4 回复  |  直到 17 年前
        1
  •  3
  •   FlySwat    17 年前

    我不喜欢使用前缀,我发现它更容易输入,更可读,实体的上下文几乎总是显而易见的。

        2
  •  2
  •   Bryan Watts    17 年前

    想想你所代表的概念,它们出现的环境,以及它们的相对频率。

    在这种情况下,数据块是 Warehouse Number . 在 仓库 , 合格。在外面 仓库 , WarehouseNumber 具备适当的资格,即 Order.WarehouseNumber .

    Warehouse.WarehouseNumber 那么,将是多余的。

        3
  •  1
  •   Garry Shutler    17 年前

    我永远不会在代码中给它们加前缀。您应该始终具有有意义的变量、属性和方法名,使前缀成为多余的。

    var currentWarehouse = warehouseService.Find(id);
    
    var number = currentWarehouse.Number;
    

    var number = order.Warehouse.Number;
    

    当涉及到将它们存储在数据库中时,我对这个问题的决定就不那么明确了。有话要说:

    select   *
    from     dbo.Warehouse
    where    WarehouseId in (
                 select   WarehouseId
                 from     ...
             )
    
        4
  •  0
  •   Jimmy McNulty    17 年前

    这是一个对象关系阻抗不匹配的mofos。当然,在OO中,实体名称的前缀似乎不合适。但是,在RDMBS中,实体前缀唯一地标识一个属性,建议避免这种情况:

    选择 邮政编码——OMG!!!!我来自哪张桌子!C.邮政编码还是S.邮政编码??!???!

    从 客户C

    内部连接供应商 在c.preferredSupplierID=s.SupplierID上

    我的建议是任意挑选一个惯例,并大致坚持下去。毕竟节约时间是一种惯例!可能没关系……:)