다른 테이블의 두 필드에 항상 같은 값을 유지할 수있는 방법이 있습니까?MySQL : 다른 테이블의 두 필드에 항상 같은 값을 유지하십시오.
답변
필드 중 하나가 변경되면 다른 필드가 동기화되도록 triggers을 사용할 수 있습니다.
일반적으로 값을 두 번 저장하지 않는 것이 가장 좋습니다. 대신 당신은 테이블의 하나의 값을 저장 할 수 있습니다 당신은 당신이 동시에 두 테이블의 값에 액세스 할 수 있습니다 있도록 외래 키에 함께 두 테이블에 가입 할 수 있습니다 쿼리 할 때 :
SELECT table1.foo, table2.bar
FROM table1
JOIN table2 ON table1.table2_id = table2.id
하는 경우를 당신은 값을 두 번 저장합니다. 이것을 비정규 화라고합니다. 값이 한 가지 이유 또는 다른 이유로 동기화되지 않으면 문제가 발생할 수 있습니다. 때로는 성능을 향상시키기 위해 비정규 화하는 것이 유리하지만 단일 조인은 매우 빠르므로 성능을 측정하고 너무 느린 경우가 아니라면이 작업을 수행하는 것이 좋습니다.
INSERT INTO TABLE A (FieldInA) VALUES ('X')
INSERT INTO TABLE B (FieldInB) VALUES ('X')
그런 다음이 테이블 행을 삭제하거나 업데이트하지 말고 다른 표의 두 입력란에서 항상 동일한 값을 유지해야합니다.
하하하! 나는 너가 농담으로 이것을 의도했기를 정말로 바란다 ... –
나 아니지만 도박이다. 이 대답을 삭제하면 담당자를 다시 계산할 때 담당자에게 다시 알립니다. –
normalize
동일한 데이터를 두 번 사용하지 않아도되고 더 이상 이와 같은 것에 대해 걱정할 필요가없는 이유는 무엇입니까? 당신은 디자인이 triggers
내 생각에 동일하게 유지되는 값은 사용자가 입력 한 자유형 텍스트 또는 기타 사항이지만, 테이블을 가지고 ID로 새 항목을 참조 할 수 있습니다. – FrustratedWithFormsDesigner
왜 지금까지이 작업을 수행 할 것 좀 봐 변경할 수없는 경우
?
하나의 엔티티 중 하나의 속성이 다른 관련 엔티티의 일부 속성과 동일한 항상이면 중복 데이터 모델이 있습니다.
을 동기화하는 대신을 하나의 속성으로 참조하십시오. 조인을 사용하여 첫 번째 테이블을 두 번째 테이블에 조인 한 다음 한 테이블에서 특성 값을 가져옵니다.
TableA.foo should always equal TableB.bar
드롭 열 TableA.foo,이 작업을 수행합니다 : 현재이있는 경우 예는,
select A.*, B.bar as foo
from TableA A
join TableB B on (B.foreign_key = A.key);
- 1. NSTableView 행을 항상 같은 위치에 유지하십시오
- 2. 테이블의 열을 다른 두 테이블의 값으로 업데이트하십시오.
- 3. Random.Next는 항상 같은 값을 반환합니다.
- 4. MySQL의 필드에 다른 테이블의 누적 데이터를 입력하십시오.
- 5. mysql 테이블의 기본 키 값이 항상 동일
- 6. 다른 테이블의 필드에 나타나는 테이블의 이름 목록 쿼리
- 7. 다른 테이블의 값을 기준으로 값을 업데이트하십시오.
- 8. mysql : 두 테이블의 구조 비교
- 9. MySQL 등급 시스템 (두 테이블의 평균 계산)
- 10. 테이블의 수정 필드를 동일한 테이블의 새 필드에 복사하는 방법은 무엇입니까?
- 11. 테이블의 두 필드에 대한 자동 증가 ID를 얻는 방법
- 12. MySQL : 다른 테이블을 참조하는 한 테이블의 외래 키 두 개
- 13. 하나의 텍스트 필드에 값을 다른 텍스트 필드에 동시에 표시하는 방법
- 14. 다른 MySQL 테이블의 평균 개수
- 15. 같은 tableModel 클래스에서 상속 한 두 테이블의 다른 헤더
- 16. 두 개의 서로 다른 테이블에서 MySQL 값을 배열로 가져 오겠습니까?
- 17. mysql 같은 auto_increment 값을 다른 것으로 가져 오기
- 18. Silverlight에서 텍스트를 항상 읽을 수 있도록 유지하십시오.
- 19. 동일한 값을 onchange의 두 숨겨진 필드에 보냅니다.
- 20. 두 테이블의 많은 부울
- 21. 하나의 MySQL 테이블을 다른 테이블의 값으로 업데이트하십시오.
- 22. 같은 테이블의 다른 열을 가입시키는 방법은 무엇입니까?
- 23. MySQL - 카운트 (*)를 선택하고 그룹화하지만 분리를 유지하십시오.
- 24. Mysql 테이블에서 다른 필드로 병합
- 25. 다른 테이블의 합계 값을위한 MySQL 쿼리
- 26. MySQL 쿼리 : 한 테이블의 모든 레코드와 다른 테이블의 수를 더한
- 27. 첫 번째 테이블의 ID를 기반으로 두 번째 테이블의 값을 합산합니다.
- 28. MySQL 다른 테이블에있는 테이블의 레코드를 제거하는 방법
- 29. MySQl - 다른 테이블의 데이터를 계산하여 필드 업데이트
- 30. 항상 컬러 박스를 스크롤 중앙에 유지하십시오.
당신은이 문제의 본질에 대해 좀 더 구체적으로 수, 왜 당신은하고 싶은 이? "최고의"해결책은 그것에 달려 있습니다 ... – FrustratedWithFormsDesigner