繁体   English   中英

npgsql-使用一个连接来访问多个架构

[英]npgsql - use one connection to access multiple schemas

我想创建一个应用程序,其中每个客户的数据都存储在其自己的架构中,每个架构中的表都相同。

我认为使用模式而不是数据库会更便宜,因为使用模式仅需要与数据库建立一个连接即可到达所有客户模式。

但是我不确定如何使用npgsql实现此目的。 有没有一种方法可以为连接创建某种模式上下文,然后该API具有与原始连接相同的api?

我想象这样的事情:

NpgsqlConnection con =  new NpgsqlConnection("CONNECTION STRING");
con.Open();

SchemaContext customer1 = con.createSchemaContext("customer1");
SchemaContext customer2 = con.createSchemaContext("customer2");

customer1.Query("select * from users");
customer2.Query("select * from users");

是否已经有类似的东西,或者我自己有办法实现?

首先,您的问题与Npgsql毫无关系-这是一个PostgreSQL问题。

PostgreSQL确实支持模式,您可以在Google上找到它。 简而言之,您可以创建模式,然后在其中创建表,然后通过以下方式访问这些表: SELECT * FROM customer1.users 除此以外,Npgsql不提供任何编程API,因为它(大多数情况下)不涉及您发送给PostgreSQL的SQL。

请注意,如果您想象的每个模式中的表都具有相同的列(并且我正在想象它们可能具有相同的列),那么最好拥有一个表并通过“客户”列来区分不同的客户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM