将数据库ID放在客户端的最佳位置在哪里?

| 我正在使用ASP.Net提供一个页面。我具有在页面上使用jQuery动态添加的控件的添加/编辑/删除功能,其中一些在数据库中具有相关记录。最好将ID(主键),属性data-*,jQuery.data()放在哪里?我应该担心ID是否在客户端可见吗?     
已邀请:
        最佳实践是使用jQuery.data(),因为它遵循HTML5标准中的此类信息。     
        最好在客户端上加密记录的ID,以确保数据库的安全性。通常,隐藏字段可以解决问题。 这样,用户仅在查看源时才能看到加密的ID。然后,被调用的脚本使用用于加密的密钥来检索记录标识符服务器端并根据需要操纵数据。     
        您可以将自己的属性添加到元素(例如
my-attr=\"92\"
),可以使用将值设置为id的隐藏输入字段(
<input type=\"hidden\" value=\"92\" />
),也可以仅使用
id
属性(例如
id=\"db-92\"
)。 我认为使用哪种方法,最适合什么都不重要。     
        您永远不要把这个放在客户身上。由于您将不可避免地返回服务器来获取数据,因此您应该放置某种形式的密钥(例如dsource = \'db3 \'作为属性或隐藏字段..),然后进行某种形式的查找服务器进程中。     
        首先,不要使用直接数据库ID。您将直接绑定到一个表的主键的一个版本。而是创建第二列,使用UUID作为主键的占位符 例如
tbl_person
 person_id INT PRIMARY KEY
 person_uuid VARCHAR(64)
 name VARCHAR(128)
但是要回答实际问题,我建议您使用适当元素的属性,可能是id
<tr><td id=\"1234-5678\">Paul </td></tr>
(编辑以正确设置代码格式)     
        我总是使用jQuery元数据库,它本质上是包含在对象的类(或任何其他)属性中的$()。data()功能。 在此处找到jQuery元数据插件:\“此插件能够从类,随机属性,子元素和HTML5 data- *属性中提取元数据。” 因此,您可以执行以下操作:
<tr><td>Dave Jones</td><td><input class=\"delete_person {person_id: 90}\" type=\"button\" value=\"Delete this guy\" /></tr>
然后用jQuery:
$(\'.delete_person.\').click(function() { 
    // delete person 
    $.post(\'/controller/delete_person\', {person_id: $(this).metadata().person_id},  
    function() {
     // the person was deleted
    }
});
希望有帮助!     

要回复问题请先登录注册