我目前正在使用newid()
为我的所有表格生成唯一标识符。显然,对于任何人来说,看起来非常难看,并且很难理解他们与之相关的数据。
例如,如果我有一张桌子:
DesktopMake DektopType CPU DetailsID (foreign key)
DetailsID
目前是这个长16位的混搭,难以查看数字,但是Details
表中的其他属性,例如:
PurchaseDate CurrentOwner Price
这些比可怕的16位数字更有意义,是否有一个过程我可以(在所说的MVC应用程序上)显示其他3个属性,也许是当用户将鼠标悬停在DetailsID
上时?为了让用户更容易知道他们真正关注的是什么?
提前谢谢你,我确信这是可能的(最好不要说很快),但我不能为我的生活找到正确的词来搜索正确的东西!非常感谢任何指导。
查看包含'示例'表:
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.DesktopMake)
</th>
<th>
@Html.DisplayNameFor(model => model.Accessory.MonitorType)
</th>
<th>
@Html.DisplayNameFor(model => model.Component.CPU)
</th>
<th>
@Html.DisplayNameFor(model => model.Detail.DetailsID)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.DesktopMake)
</td>
<td>
@Html.DisplayFor(modelItem => item.Accessory.MonitorType)
</td>
<td>
@Html.DisplayFor(modelItem => item.Component.CPU)
</td>
<td>
@Html.DisplayFor(modelItem => item.Detail.DetailsID)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.DesktopID }) |
@Html.ActionLink("Details", "Details", new { id=item.DesktopID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.DesktopID })
</td>
</tr>
}
答案 0 :(得分:0)
简而言之:您应该设计解决方案,甚至不要尝试在“最终用户”界面中显示PK / FK值。
系统生成的PK / FK值对数据库很重要,但对人不重要。 “自然”键很适合人类查看,并且用于数据库中的LOGIC,而不是数据库键本身。
就你决定用于PK / FK系统生成的值而言,使用newid()GUID与简单自动增量整数值的不同方案存在很多争议,但无论你喜欢什么,它们都是通常对用户没有多大意义,因此通常更好的做法就是永远不要将它们用于人类交互。
祝你好运!