2012-04-26 8 views
0

웹 SQL, indexedDB 및 어쩌면 localStorage/JSON까지 추상화하기위한 작고 간단한 API를 작성하고 있습니다. API를 사용하면 실제로 사용되는 데이터베이스가 indexedDB 또는 localStorage/JSON 데이터 구조 인 경우에도 데이터베이스를 작은 관계형 데이터베이스로 생각할 수 있습니다.indexedDB XML 스키마?

"표준"방법이 있는지 모르겠지만 데이터베이스의 구조를 XML 스키마에 정의 된 관계형 데이터베이스로 나타내야합니다. 최종 제품은 xsd -> xml (스키마 다음에 db 정의) -> javascript api -> (indexeddb/wwebsql/localStorage-JSON)와 같이 보일 것입니다. 좋은 생각? API 내부에서 성능을 조정할 수 있습니다. 즉, 나는 indexedDB가 관계형 데이터베이스가 아니라는 것을 알고 있습니다. UNEDION이지만 API 자체는 indexedDB와 웹 SQL을 웹 SQL 방식으로 작동합니다.

나는 당신에게 내 스키마를 제시했다. 나는 그것을 아주 간단하게하고 싶다. 가능한 한 간단합니다. 이 문제를 개선 할 수 있습니까? 내가 추가하고자하는 한 가지는 필드에 대해 정의 된 유형입니다. 필드는 속성 유형을 가질 수 있지만 특정 값 (문자열, 숫자, BLOB, W/E) 만 가능할 수 있습니다.

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <!-- DATABASE --> 
    <xs:element name="database"> 
    <xs:complexType> 
     <xs:choice> 
      <!-- TABLE--> 
       <xs:element name="table" minOccurs="0" maxOccurs="unbounded"> 
       <xs:complexType> 
        <xs:choice> 
         <!-- FIELD --> 
         <xs:element name="field" minOccurs="0" maxOccurs="unbounded"> 
         <xs:complexType> 
          <xs:attribute name="name" type="xs:string" use="required"/> 
          <xs:attribute name="pk" type="xs:boolean"/> 
          <xs:attribute name="fk" type="xs:string"/> 
          <xs:attribute name="unique" type="xs:boolean"/> 
          <xs:attribute name="index" type="xs:boolean"/> 
          <xs:attribute name="indentity" type="xs:boolean"/> 
          <xs:attribute name="maxSize" type="xs:long"/> 
         </xs:complexType> 
         </xs:element> 
         <!-- END FIELD --> 
        </xs:choice> 
        <xs:attribute name="name" type="xs:string" use="required"/> 
       </xs:complexType> 
       </xs:element> 
      <!-- END TABLE --> 
     </xs:choice> 
     <xs:attribute name="version" type="xs:double" use="required"/> 
    </xs:complexType> 
    </xs:element> 
    <!-- END DATABASE --> 
</xs:schema> 

답변

1

IndexedDB는 관계형보다는 문서 지향 (실제로는 객체 지향) 저장소입니다. IndexedDB에 many-to-many relationships을 구현하는 것이 가능하지만, 당연한 것은 아닙니다.

그래서 모든 웹 저장소를 단순한 XML 스키마로 단순화하는 것이 좋겠지 만 믿을 수 없을만큼 표현력이 풍부하지는 않을 것이라고 생각합니다.

+0

indexeddb 만 사용하는 것이 안전하다고 생각하십니까? 아니면 오프라인 솔루션에도 indexeddb를 아직 지원하지 않는 장치 용 web sql이 포함되어 있어야합니까? – anonymous