저는 파이썬 3을 사용하고 있습니다 만, 문제는 실제로 특정 언어에 묶여 있지 않습니다.서브 테이블 구현하기 (테이블보기) : 클래스 관계 디자인하기
나는 기본 키가있는 테이블을 구현하는 class Table
입니다. 이 클래스의 인스턴스에는 실제 데이터 (매우 큰 데이터)가 들어 있습니다.
사용자가 테이블의 행에 필터를 제공하여 하위 테이블을 만들 수있게하려고합니다. 나는 테이블을 복사하고 싶지 않기 때문에 부모 테이블의 기본 키의 하위 집합 만 하위 테이블에 보관할 계획이었습니다.
분명히, 서브 테이블은 부모 테이블에 대한 뷰일뿐입니다. 상위 테이블이 변경되면 변경되고 상위 테이블이 삭제되면 유효하지 않게되며 상위 테이블에서 삭제되면 일부 행이 손실됩니다. [EDIT : 명확히하기 위해 부모 테이블이 변경된 경우 하위 테이블에 어떤 영향을 미치지 않습니다. 모든 동작은 정상입니다.]
두 클래스를 어떻게 연결해야합니까? 나는 생각했다 :
class Subtable(Table):
def __init__(self, table, filter_function):
# ...
내 가정이 Subtable
이 Table
의 인터페이스를 유지이었다, 약간 상속 된 메소드를 오버라이드 (override)를 제외하고 단지 행에이 좋은 구현되어 있는지 확인 할 수 있습니다.?
문제는 전달 된 테이블 개체를 복사하지 않으려는 경우 주어진 Subtable
인스턴스를 초기화하는 방법을 잘 모르겠습니다. 심지어 가능할까요?
class Table
또한 Subtable
인스턴스를 반환하는 인스턴스 메서드를 제공하려고 생각했습니다. 하지만 Subtable
에 Table
의 의존성이 생기고, 피하는 것이 더 낫다고 생각하십니까? 내가 사용하는거야
이 데이터 구조를 데이터베이스로 옮겼습니다. 파이썬에는 메모리에 SQL DB를 생성 할 수있는'sqlite3'이있다. – katrielalex
네,하지만 지금은 맞춤 구현을 고수하기로 결정했습니다. – max