Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我应该使用DB的主键作为我的应用程序的参考吗?_Android_Sql Server_Database_Wcf_Primary Key - Fatal编程技术网

Android 我应该使用DB的主键作为我的应用程序的参考吗?

Android 我应该使用DB的主键作为我的应用程序的参考吗?,android,sql-server,database,wcf,primary-key,Android,Sql Server,Database,Wcf,Primary Key,根据我的“数据库基础”教学教授的要求,我需要建立一个可靠的软件项目,以进入我的教学期末考试 我的想法是构建一个应用程序(比如一个简单的android应用程序和一个地图),它将与WCF服务(显然,连接到我需要实现的DB)进行通信 现在,这里有一个(可能是愚蠢的)问题:如果我用主键直接引用我的行就可以了? 按照地图的示例,服务会给我一个“标记”列表(它们将填充地图),每个标记都有一个ID。 交换表的主键(在本例中为ID)以便于客户端使用通常是安全的?从技术上讲,可以通过系统的不同模块传递主键,但从软

根据我的“数据库基础”教学教授的要求,我需要建立一个可靠的软件项目,以进入我的教学期末考试

我的想法是构建一个应用程序(比如一个简单的android应用程序和一个地图),它将与WCF服务(显然,连接到我需要实现的DB)进行通信

现在,这里有一个(可能是愚蠢的)问题:如果我用主键直接引用我的行就可以了? 按照地图的示例,服务会给我一个“标记”列表(它们将填充地图),每个标记都有一个ID。
交换表的主键(在本例中为ID)以便于客户端使用通常是安全的?

从技术上讲,可以通过系统的不同模块传递主键,但从软件工程的角度来看,这是完全不鼓励的。 有一个著名的概念叫做分层编程,你肯定听说过
此概念的一般目的是分离功能或松散耦合易于维护和进一步开发管理。 该概念为任何软件解决方案引入了3个通用层(主要是面向数据的): DAL(数据访问层)、BLL(业务逻辑层)和PL(表示层),它们涉及软件解决方案的3个不同方面

因为你要实施一个大学项目,你不必经历分层开发的过程。但我建议您尝试一下这个概念的简单方法,因为它确实有助于建立一个稳固的基础,并显著降低错误率和代码校正和调整努力。 此外,完全不鼓励交换主键或任何数据库本机数据。因此,请尝试交换其他标识符。您可以尝试基于主键为每个地图标记构建任意标识符