에있는 경우 내 데이터베이스에서 같은 테이블이 이러한 사용자의 등 Customer
, Member
, Instructor
, Employee
각처럼 자신의 이메일 adrress 있습니다. 주어진 이메일을 가진 사용자가 이미 있는지 확인해야합니다. 이 같은확인 값이 여러 테이블
- 확인 각 테이블에 뭔가를 : 나는 생각했다
public bool IsEmailAddressExists(string email)
{
if (!Context.Customers.Any(c => string.Equals(c.Email, email, StringComparison.InvariantCultureIgnoreCase)))
if (!Context.Members.Any(m => string.Equals(m.Email, email, StringComparison.InvariantCultureIgnoreCase)))
...
}
- 모든 이메일을 선택하고 확인 :
public bool IsEmailAddressExists(string email)
{
var emails = Context.Customers.Select(c => c.Email).Union(Context.Members.Select(m => m.Email))...; //other unions
return emails.Any(e => string.Equals(e, email, StringComparison.InvariantCultureIgnoreCase));
}
더 테이블이 있고 많은 사용자들, 그런 종류를 구현하는 가장 효율적인 방법이 무엇인지 알고 싶습니다. 확인 중.
감사합니다.
'선택'을하지 않으면 '임의'가 더 효율적입니다. 그러나 각 테이블을 검색 할 때마다 더 많은 옵션을 볼 수 없습니다. 추가 성능 비트가 실제로 필요한 경우 스토어드 프로 시저와 동일하게 수행 할 수 있습니다. 대안은 아마도 하나의 테이블에 모든 이메일 주소를 저장하고 관계를 연결하는 것입니다 (훨씬 더 많은 일이 있습니다). – musefan
@musefan, 답변 해 주셔서 감사합니다. 나는 두 옵션에 대해 생각했다. 저장 프로 시저와 개별 전자 메일 테이블에 대해 생각할 것입니다. 데이터베이스 스키마를 변경할 수 없습니다. – Zabavsky