Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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
Sql server T-SQL-使用GUID';在存储公共信息的表中使用?_Sql Server_Database Schema - Fatal编程技术网

Sql server T-SQL-使用GUID';在存储公共信息的表中使用?

Sql server T-SQL-使用GUID';在存储公共信息的表中使用?,sql-server,database-schema,Sql Server,Database Schema,我开始建立一个数据库来管理车辆、财务、账单、工作历史、居住历史……等等 我主要是作为一个学习练习来教自己不同的模式设计和基础开发方法。我已经做了4年的数据库开发人员,但我只在同一个系统/模式上工作过。即使是我的新特性的基础开发也必须遵循现有的模式 不管怎么说,我有一些表格,比如车辆登记、车辆贷款/购买、账单等。但我不想存储它们的账单信息(付款金额、发生次数等),我想我可以在每个表格上都放一个GUID列,然后按GUID存储账单信息,然后使用某种视图或函数,让我可以查找特定GUID的对象id(表)

我开始建立一个数据库来管理车辆、财务、账单、工作历史、居住历史……等等

我主要是作为一个学习练习来教自己不同的模式设计和基础开发方法。我已经做了4年的数据库开发人员,但我只在同一个系统/模式上工作过。即使是我的新特性的基础开发也必须遵循现有的模式

不管怎么说,我有一些表格,比如车辆登记、车辆贷款/购买、账单等。但我不想存储它们的账单信息(付款金额、发生次数等),我想我可以在每个表格上都放一个GUID列,然后按GUID存储账单信息,然后使用某种视图或函数,让我可以查找特定GUID的对象id(表)

  • 这种设计方法是做事情的好方法吗

  • 如何设计函数/视图以返回特定GUID的objectid/tablename

  • 编辑:我想这是一个糟糕的解释,所以这里有一个简单的例子:

    表:车辆登记

    此表将包含诸如车牌、何时适合注册等信息

    表:VehicleLoan

    此表将包含每辆车的贷款信息(融资金额、期限、四月、购买日期等)

    这两个表都会有诸如计费日期、发生次数、估计金额等信息。但我不会将这些数据存储在这两个表中,而是将其存储在另一个名为BillingInfo或类似的表中。显然,我可以在指向BillingInfo表上PK的两个表上添加一个FK。但这意味着每个需要账单信息的表都需要FK。而不是在每个表上创建FK…如果相反,VehiclerRegistration和VehicleLoan中的每一行都有一个唯一的ID,我会用唯一的ID来存储账单信息

    由于它是跨表的,所以我会有一个函数或视图来告诉我GUID在哪个表中。(请记住,这是一个非常小的个人数据库,因此目前不关心速度和优化)


    如果我将此方法应用于所有常见信息,如账单信息,那么我就可以避免在每个需要FK的表上都放置FK。我可以创建表并使用唯一ID来代替?

    在普通的自动递增标识列上使用GUID的原因是什么?@AlexK。这将允许我只使用一个ID查找任何表中的任何行。另一种方法是在每个表上有一列包含账单信息,并放置一个指向账单信息表PK的FK?但是,如果我有其他的表,我想在将来为公共信息创建,我将不得不再次为这些表中的每一个添加一个新列。我在每个表上也有自动递增的PK。GUID将仅用于全局查找。您能否提供一个小的工作示例,说明您的想法,或者只是表结构、列名和约束、ER图,或者只是创建表SQL,但目前我对您试图实现的目标非常迷茫。对不起,各位,我想我不太擅长解释这个。哈哈。查看我编辑的帖子,看看这是否有帮助?这是否意味着如果您在
    车辆注册
    中有6条记录,在
    车辆登录
    中有4条记录,那么您将在两个表中拥有10个唯一ID帐户,因此无论如何都需要在
    BillingInfo
    中拥有10条记录?我很难看出这种方法比只在原始表中包含列有任何好处,但它会增加内存使用,降低性能,并删除引用完整性。