2009-01-09 230 views
1

对于域名实体,应该使用实体名称作为属性名称的前缀吗? I.E.我的类仓库有一个属性WarehouseNumber。该属性应该命名为WarehouseNumber还是简单的Number?域名实体名称

想法?

回答

3

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

2

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

在这种情况下,这些数据是WarehouseNumber。在Warehouse的情况下,Number是合格的。在Warehouse之外,WarehouseNumber将被适当地限定,即Order.WarehouseNumber

Warehouse.WarehouseNumber然后,将是多余的。

1

我永远不会在代码中加前缀。您应该始终具有有意义的变量,属性和方法名称,使前缀变得冗余。

var currentWarehouse = warehouseService.Find(id); 

var number = currentWarehouse.Number; 

var number = order.Warehouse.Number; 

我少对此事的决定,当谈到将它们存储在数据库中。有什么可说的:

select * 
from  dbo.Warehouse 
where WarehouseId in (
      select WarehouseId 
      from  ... 
     ) 
0

这是这些对象关系阻抗不匹配mofos之一。在OO中,肯定实体名称的前缀似乎不适合。但是,在RDMBS中,实体前缀唯一标识一个属性,并鼓励避免这种情况:

SELECT PostCode --OMG !!!我来自哪张桌子! C.PostCode或S.PostCode ??!??!

FROM 客户C

INNER JOIN供应商小号 ON C.PrefferredSupplierID = S.SupplierID

我的建议是随便挑一个公约,它大致坚持。它是一个节约时间的公约!可能没关系.. :)