2015-01-13 5 views
-1

나는 지금 내 마음에 큰 문제가 있습니다. 긴 이야기를 짧게하기 위해 온라인 약국 네트워크를 예로 들어 보겠습니다. 수백만 명의 사용자, 수백만 개의 데이터가 있지만 하나의 단일 데이터베이스가 있습니다. 데이터베이스에 Patient 테이블이 있다고 가정합니다. 모든 새로운 약국이 추가 될 때마다 새로운 환자가이 테이블에 저장됩니다.다중 사용자 웹 응용 프로그램에서 데이터 보호

비록 데이터가 동일한 Patient 테이블에 있더라도 약국 "A"는 환자에게만 액세스 할 수 있고 다른 사람은 확인할 수 없으며 약국 "B"는 환자에게만 액세스 할 수 있지만 다른 사람에게는 액세스 할 수 없습니다. 그들은 하나의 약국마다 사용자 이름과 암호를 제공하지만 Patient 테이블과 하나의 데이터베이스에만 있기 때문에이 데이터가 서로 공유되지 않도록하는 방법은 무엇입니까? 나는 그들이 모든 단일 사용자에 대해 별도의 데이터베이스를 작성하지 않습니다 확신합니다 : D

업데이트

내 질문과 혼동하지 마십시오. TonyHopkinson에 따르면 Patient 표에 PharmacyID을 사용하는 것이 해결책입니다. 예.하지만 보안을 강화하는 방법은 무엇입니까? 어떤 사람이 "약국 A"프로파일을 사용하고 데이터베이스에 들어가면 다른 약국 데이터를 포함하여 모든 정보를 얻습니다. 그렇습니까?

+1

Patient 테이블에 PharmacyID를 입력하고이를 사용하여 환자 기록을 선택할 수있는 것을 제한하는 것이 단순한 답입니다. 기본 데이터베이스 과정/튜토리얼을 수행하고 싶을 수도 있습니다. 확실히 여기 두더지 언덕에서 산을 만들었습니다. –

+0

@ TonyHopkinson : 답장을 보내 주셔서 감사합니다. 페이스 북과 같은 대규모 응용 프로그램도 그렇게합니다. –

+0

이것은 실제로 스케일링 질문이 아닙니다. 크기 조정은 투명해야합니다. 그래서 당신은 국가를 말하면서 DB를 나눌 수 있습니다, 그렇다면 환자와 약국을 나누는 것입니다. 테이블을 분할하여 db를 확장해야한다면, mysql을 사용하지 않을 것입니다. dbms는 규모에 맞게 설계되었으므로 mysql은 그렇지 않습니다. –

답변

0

나는 당신이 UML에서와 같이 협회 개념을 언급하고 있다고 생각한다. 환자는 하나 또는 여러 개의 약국에 묶일 수 있으며 약국에는 하나 또는 여러 명의 환자가 있습니다. 이것은 데이터베이스 개념과 관련이 있습니다.