저는 해결하기가 힘든 문제가 있습니다. 생각하고 검색하여 한 가지 결론을 내 렸습니다. 문제는 공통 기능을 기반으로 웹 사이트를 만들려는 클라이언트가 있기 때문에 모듈이라고 부르겠습니다. MVC를 사용하여 모듈을 연결하는 훌륭한 아이디어 인 Portable Areas를 사용하는 것이 좋습니다. 큰 문제는, 그가 원하는 새로운 사이트에서 구현 될 블로그 모듈을 만들었습니다. 이제는 일부 사용자가 각 기사에 그림 갤러리를 추가해야하는 것과 같이 고유 한 요구 사항을 갖거나 각 기사의 참조 목록을 작성해야합니다. . 그래서 모두 당신이해야 할 무엇복잡한 모듈 기반 ASP.NET MVC 2를 사용하여 DB에 새 레코드 만들기
- 이 블로그 테이블에 대한 외래 키와 함께 새로운 갤러리 테이블을 추가 당신이에 작업 한 사이트가 어디 이 정상적인 상황에서 쉬운 것입니다.
- Linq2SQl 코드를 재생성하고 모델을 업데이트하십시오.
- 만들기, 편집, 삭제보기에 새 양식 요소를 추가하십시오.
- 컨트롤러에 논리를 추가하십시오.
하지만 새로운 기능이 멋진 와 클라이언트가 모든 사이트에서 그것을 구현하기로 결정하는 경우 2 가지 이유
의- , 그때가를 반복해야하기 때문에 내 상황이 복잡 복잡하고 시간이다 각 사이트에 대한 작업.
- 기능은 그것이 미래
에 나를 위해 일관성을 만듭니다 고유 한 경우 왜 지금이 확실히 내 일을 쉽게 할 것이다, 각 모듈에 대한 부가 기능을 만들 휴대용 영역을 사용하는 문제를 해결하기위한 첫 번째 단계로 각각의 새로운 모듈이나 애드온 1 DLL을 드래그,하지만 난 새로운 모듈 또는 추가 기능이 DLL이 있기 때문에 어떤
- , 여기에 약간의 문제가에 의해, 어떻게 내 관리자 패널에서 이러한 기능을 만들 수 있습니다 새 Addon을 설치하거나 새로운를 찾으십시오.는 모듈/부가 기능, 휴대용 지역 내에서 업데이트와 같은 를 설치 절차를 만들 연습 DB를, 새로운 경로 등 최고의 무엇 메인 응용 프로그램
- 에 새로운 DLLS에게 를 끌고 추가 .. : 모듈 부가 기능에 고유 한 가장 큰 문제로 이제
우리가 내가 휴대용 영역으로 만들어 위에서 언급 한 논리를 따른다면, 그것은 쉬울 것, 기사 갤러리 부가 기능을 다시 보자 모듈 코드에 기능을 생성하여 설치된 모든 애드온을 반복하고 CRUD 뷰에 나열합니다.하지만 Addon을 격리하고 위의 이유에 대한 Main Module Code를 수동으로 업데이트하고 싶지 않기 때문에 외래 키 관계가 없기 때문에 메인 모듈과 동기화 된 새로운 Addons에 대한 CRUD 작업을 수행합니다. 위의 옵션은 선택 사항 일 수 있기 때문에 다시 한 가지 더 좋은 방법이 될 수 있기를 바랍니다.
설치 과정에서 첫 번째 갤러리 Addon에 대한 표를 만들지 만 외래 키 관계를 만드는 대신 수동 외래 키를 만듭니다.이 외래 키는 다음을 사용하여 레코드를 만들 때 주 모듈 컨트롤러에서 고유 ID 생성으로 채워집니다. 다음 코드는
- 이 가능하거나 바보 다만 보통 이런 식으로는 내 관심사는 여기에 다음을 ViewData에 저장 나는 새로운 기록을 만들 때 단지 부가 기능 컨트롤러에 전달,
private string GenerateId() { long i = 1; foreach (byte b in Guid.NewGuid().ToByteArray()) { i *= ((int)b + 1); } return string.Format("{0:x}", i - DateTime.Now.Ticks); } ViewData["FK"] = GenerateId();
을하지만, .
- 이 기술은 진정한 고유 키를 생성합니다.
내 질문은 절름발이 경우 매우 죄송하지만,이 물어 최고의 장소이며, 나는 많은 사람들이 그런 기능을 할 것이라고 생각하고 나는 그것이 생각 누군가가 나에게
전혀 답답한 질문이 아니지만 약간의 생각이 필요한 설계상의 질문입니다. 나는 당신의 데이터베이스 디자인이 자신의 ID를 만들 것을 요구해서는 안된다고 생각한다.필자 본능은 플러그인 정보를 모두 포함하는 테이블이 필요하다는 것입니다 (플러그인을 구분할 수있는 추가 열이 있음). 이렇게하면 모든 플러그인에 대해 동일한 Linq to SQL 스키마를 사용할 수 있습니다. 특정 플러그인에 대한 고유 한 정보가있는 경우 해당 플러그인의 고유 한 정보에 대해 별도의 Linq to SQL 스키마를 작성할 수 있습니다. –
별도의 Linq to SQL 스키마는 플러그인과 함께 사용할 수 있으므로 고유 한 정보가 포함 된 플러그인을 추가 할 때마다 기본 Linq를 SQL 스키마로 업데이트 할 필요가 없습니다. 이것은 문제가 잠재적으로 해결 될 수있는 많은 방법 중 하나 일뿐입니다. –
감사합니다.하지만, 플러그인 스키마에만 플러그인 테이블을 포함시켜야한다고 정확히 말해 줄 수 있습니까? 여전히 존재하는 또 다른 문제는 내가 플러그인을 사용하여 새로 삽입 한 레코드를 어떻게 연결할 수 있습니까? 내가 언급했거나 더 좋은 방법이 있습니까? – DevMania