4

This question은 관계형 데이터베이스에 단일 그래프 저장에 관해 묻습니다. 이 경우 해결 방법은 분명합니다. 하나는 노드 테이블이고 다른 하나는 에지 테이블입니다.많은 수의 그래프 데이터 구조를 데이터베이스에 저장

저는 그래프 데이터 구조가 시간이 지남에 따라 발전하므로이 그래프의 "스냅 샷"을 데이터베이스에 저장하고 싶습니다. 수백 개의 그런 스냅 샷이 있다고 상상해보십시오.

하나의 해결책은 스냅 샷에 대해 노드와 에지의 새로운 테이블 쌍을 생성하는 것입니다 (위와 같음). 더 나은 해결책이 있습니까?

편집 :이 데이터베이스로 무엇을하고 싶은지 묻습니다. 나는 의 그래프를 C++에서 MySQL로 덤프하고 모두을 C++ 데이터 구조로 다시로드하는 것을 제외하고는 어떤 쿼리도 수행하지 않을 것이라고 생각합니다. 그래서 효율적인 임의 접근/검색을위한 스토리지가 아닌 MySQL을 사용하고자합니다.

+0

기록 그래프로 할 수있는 작업에 대한 세부 정보를 추가 할 수 있습니까? 쿼리/검색을 실행할 수 있어야합니까? –

+0

필자는 모든 그래프를 C++에서 MySQL로 덤프하고 다시 C++ 데이터 구조로로드하는 것을 제외하고는 쿼리를 수행하지 않을 것이라고 생각합니다. 그래서 효율적인 임의 접근/검색을위한 스토리지가 아닌 MySQL을 사용하고자합니다. –

답변

5

당신은 테이블

graphs = (graphid, dateofsnapshot or other things unique to the snapshot) 

이 필요하고 당신은 노드와 가장자리 테이블하지만 그래프 테이블에 foriegn 키 참조가 필요합니다. 이렇게하면 데이터베이스에 임의의 수의 그래프를 가질 수 있습니다.

+0

각 그래프에 대해 새 테이블을 만드는 것보다 EDIT에 설명 된 작업이 더 효율적이라고 생각하십니까? –

+0

@ Lex Fridman 여전히 정규화 된 디자인은 그래프 당 새로운 테이블 쌍을 만드는 것보다 낫다고 생각합니다. –

관련 문제