2013-08-17 5 views
1

doctrine2를 사용하여 symfony2 프로젝트에서 작업하고 있습니다. 10 개의 새로운 필드와 DB에 10 개의 새로운 필드를 추가하는 폼에 연결된 사용자를위한 새 버튼 만들기에 관한 문제가 있습니다. :doctrine2를 사용하여 쿼리에 새 열 만들기

사용자가 "새 추가"버튼을 클릭하면 XV 값이있는 필드 X를 하나 더 추가하고 데이터베이스에 하나의 colomun "X"를 만들고 YV ...를 사용하여 두 번째 필드 Y를 만들 수 있음을 의미합니다. 또한 XV와 YV는 "decimal"과 같은 필드 유형입니다.

내가 아약스를 사용하는 형태로 새로운 필드를 추가로 문제가 없습니다 만, 제 질문은 다음과 같습니다

1은 어떻게 doctrine2와 DB의 테이블에 새 열을 작성하고도 값을 삽입?

2 새 항목을 만들 때 클래스 엔터티와 클래스 폼을 동시에 자동으로 업데이트하는 방법은 무엇입니까?

답변

1

우선 내가 완전히 성취하려는 목표를 이해하지 못했다는 것을 인정해야합니다. 하지만 저는 거의 긍정적입니다. 설계에 개념적 실수가 있다는 것입니다.

다음과 같은 두 가지 개념을 구분해야한다 :

  • 같은 INSERT, UPDATE 등의 DML (데이터 조작 언어), 또는 새 레코드를 만드는 것이 의미 데이터베이스에서/데이터 삭제 (끼워 넣다).
  • CREATE TABLE (새 데이터베이스 관계 만들기) 또는 ALTER TABLE (데이터베이스에 새 열 추가) 같은 DDL (데이터 정의 언어).

당신은 DDL를 사용하려고 동적으로 모든 연습 좋은 효과가 아닌 아닌 데이터베이스에 새 열을 추가 (당신의 설명에 따라 ALTER TABLE 문). (예 : 구축하려는 시스템이 데이터베이스 관리 도구이거나 이와 유사한 경우) 매우 적합한 이유가 있어야합니다.

은 아키텍처를 완전히 다시 생각하고 다시 디자인하고 DML을 사용하여 목표를 달성 할 것을 적극 권장합니다. 유연한 데이터 구조를 설계하고 새로운 열을 추가하지 않고 동적 데이터베이스에 새 레코드를 삽입하여 문제를 해결할 수 있다고 확신합니다.

데이터베이스 구조를 다시 디자인하면 Symfony와 Doctrine을 사용하여 작업을 구현하는 것이 매우 쉽습니다.

관련 문제