我是ActiveRecord模式的一个相对较新的用户。我想知道这种模式对于大型关系数据库是否实用。假设我们有大约15个相关表,使用AR模式进行CRUD是否有意义? 例如:
tblCustomer
tblCustomerNames
tblCustomerAddresses
tblCustomerDocuments
tblCustomerPhoneNumbers
等等.. 请注意,客户可能有多个名称(如少女,合法等),多个地址。出于某种原因,我觉得如果我们使用存储过程会更好更快。可能是我回到了我习惯的状态,但如果我错了,请纠正我。
答案 0 :(得分:1)
你是对的。在加载相关数据时,Active Record模式会变得非常繁琐。有一些避免这种情况的技术,但总的来说,我会创建一组公开所需数据的视图。在我看来,最好只将特定屏幕上需要的数据作为只读视图公开,并使用存储过程执行修改。 出于安全考虑,CRUD也应通过存储过程进行。使用存储过程可以为您提供额外的优势 - 您可以更改操作的内部逻辑,而无需更改客户端代码。