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