나는 파일과 사용자라는 몇 가지 테이블을 포함하는 데이터베이스를 가지고 있습니다. 이 관계는 many-to-many 다. 그래서 위의 두 테이블 모두에 외래 키를 가지고있는 users_files_ref라는 테이블도있다. 난다 - 대 - 다 관계를 어떻게 관리해야합니까?
> user_file_ref_id, USER_ID FILE_ID -> FILE_ID, FILE_NAME
사용자 - -> USER_ID, USER_NAME
users_files_ref
파일 : 여기
각 테이블의 스키마입니다 Codeigniter를 사용하여 파일 호스트 응용 프로그램을 만들었으며 사용자가 파일을 업로드 할 수있는 기능을 추가하는 중입니다. 이것은 내가 내 문제를 겪고있는 곳이다.일단 파일을 파일 테이블에 추가하면 users_files_ref 테이블을 업데이트하기 위해 새 파일의 ID가 필요합니다. 지금은 파일 테이블에 레코드를 추가하고 마지막으로 추가 된 파일을 가져 오는 쿼리를 실행하여 ID를 가져온 다음 해당 ID를 사용하여 새 users_files_ref 레코드를 삽입한다고 생각했습니다.
나는 이것이 작은 규모로 작동한다는 것을 알고 있지만, 특히 교통량이 많은 시나리오에서 이러한 기록을 관리하는 더 나은 방법이 있다고 상상합니다.
내가 관계형 데이터베이스 물건에 새로운 오전하지만 잠시 동안 PHP 주변에 있었다, 그래서
나는 기본 및 외래 키를 사용하여 파일을 올바르게 설정 한, 사용자 및 users_files_ref :-) 여기에 나와 함께 곰하시기 바랍니다 테이블,이 시나리오에 대한 파일 레코드 추가를 관리하는 방법에 대해 궁금한가요?
제공된 도움을 주셔서 감사합니다. 매우 감사드립니다.
웨스는
여름, 나는 CI 문서를 살펴볼 때이를 넘었지만 실제로 마지막 삽입물을 실제로 잡았다는 것을 알지 못했습니다.] 저장 프로 시저 학습이 필요하지 않으므로 완벽한 솔루션처럼 보입니다. 하지만 많은 사용자가 동시에 업로드 할 때 저장 프로 시저가 이러한 삽입의 무결성을 더 잘 관리 할 수 있는지 궁금합니다. 이 특정 방법으로 문제가 생겼습니까? 이 작은 보석을 내 관심에 가져 주셔서 감사합니다! – wes
나는 Ellis Labs의 사람들이 명백한 동시성 문제가있는 데이터베이스 방법을 폭로하기에는 너무 좋을 것이라고 확신한다. 또는 항상 자신을 안심시키기 위해 소스 코드를 볼 수 있습니다. 나는 결코 문제가 없었다. :) – Summer