通过一个 company_id 来自应用程序的存储过程?
company_id
create stored procedure GetOrders(@customer_id int) as select * from Orders where company_id = @customer_id;
我忘记了存储过程的确切语法(呃!),但这个想法很合理。当然,除非你的意思完全不同。
我认为在sql服务器端存储业务逻辑不是最好的主意。 SQL中的过滤数据使您的存储过程/模式设计更加复杂。
使用一些ORM(Linq,HNibernate等)框架进行动态过滤会简单得多。 当然很难在不知道项目具体情况的情况下推荐一些东西,但我会选择提供灵活数据查询的LINQ。
你想要的基本上是一个 Isolation 。
Isolation
为此,您可以遵循以下几条规则:
CompanyName
像这样的东西,如果不了解项目的实际要求,很难说出更精确的东西。
什么是LINQ vs DB,它取决于您的规模。考虑到LINQ将比StoredProcedure或View从某个规模开始慢。但这是你必须衡量的。从舒适的角度来看LINQ自然是更优选的解决方案。