我有一個問題,我想以最好的方式解決。事情是,我做了一個模式,它看起來像這樣:XML和Sql Server 2005
打印( 「
<xs:complexType name="rentACarT">
<xs:sequence>
<xs:element name="poslovnice" type="poslovniceT" />
<xs:element name="korisnici" type="korisniciT" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="poslovniceT">
<xs:sequence>
<xs:element name="poslovnica" type="poslovnicaT" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="poslovnicaT">
<xs:sequence>
<xs:element name="naziv" type="xs:string" />
<xs:element name="adresa" type="adresaT" />
<xs:element name="grad" type="gradT" />
<xs:element name="vozila" type="vozilaT" />
<xs:element name="zaposlenici" type="zaposleniciT" />
<xs:element name="posudbe" type="posudbeT" />
</xs:sequence>
<xs:attribute name="id" type="xs:int" />
</xs:complexType>
<xs:complexType name="vozilaT">
<xs:sequence>
<xs:element name="vozilo" type="voziloT" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="zaposleniciT">
<xs:sequence>
<xs:element name="zaposlenik" type="zaposlenikT" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="korisniciT">
<xs:sequence>
<xs:element name="korisnik" type="korisnikT" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="posudbeT">
<xs:sequence>
<xs:element name="posudba" type="posudbaT" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="posudbaT">
<xs:sequence>
<xs:element name="idVozila" type="xs:int" />
<xs:element name="jmbgZaposlenika" type="jmbgT" />
<xs:element name="jmbgKorisnika" type="jmbgT" />
<xs:element name="datumPosudbe" type="xs:date" />
<xs:element name="ugovoreniDatumPovratka" type="xs:date" />
<xs:element name="stvarniDatumPovratka" type="xs:date" />
</xs:sequence>
<xs:attribute name="id" type="xs:integer" />
</xs:complexType>
<xs:complexType name="voziloT">
<xs:sequence>
<xs:element name="registracija" type="xs:string" />
<xs:element name="modelVozila" type="modelVozilaT" />
<xs:element name="godinaProizvodnje" type="godinaT" />
<xs:element name="cijenaPosudbePoDanu" type="xs:double" />
</xs:sequence>
<xs:attribute name="id" type="xs:int" />
</xs:complexType>
<xs:complexType name="zaposlenikT">
<xs:sequence>
<xs:element name="ime" type="xs:string" />
<xs:element name="prezime" type="xs:string" />
<xs:element name="spol" type="spolT" />
<xs:element name="datumZaposlenja" type="xs:date" />
<xs:element name="grad" type="xs:double" />
</xs:sequence>
<xs:attribute name="jmbg" type="jmbgT" />
</xs:complexType>
<xs:complexType name="korisnikT">
<xs:sequence>
<xs:element name="ime" type="xs:string" />
<xs:element name="prezime" type="xs:string" />
<xs:element name="spol" type="spolT" />
<xs:element name="adresa" type="adresaT" />
<xs:element name="grad" type="gradT" />
<xs:element name="status" type="statusKorisnikaT" />
</xs:sequence>
<xs:attribute name="jmbg" type="jmbgT" />
</xs:complexType>
<xs:complexType name="modelVozilaT">
<xs:sequence>
<xs:element name="tipVozila" type="tipVozilaT" />
<xs:element name="marka" type="xs:string" />
<xs:element name="model" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="tipVozilaT">
<xs:restriction base="xs:string">
<xs:enumeration value="auto" />
<xs:enumeration value="kombi" />
<xs:enumeration value="kamion" />
<xs:enumeration value="limuzina" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="godinaT">
<xs:restriction base="xs:int">
<xs:minInclusive value="1980" />
<xs:maxInclusive value="2050" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="jmbgT">
<xs:restriction base="xs:string">
<xs:pattern value="([0-9]){13}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="spolT">
<xs:restriction base="xs:string">
<xs:enumeration value="m" />
<xs:enumeration value="f" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="statusKorisnikaT">
<xs:restriction base="xs:string">
<xs:enumeration value="stalni" />
<xs:enumeration value="novi" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="gradT">
<xs:sequence>
<xs:element name="postanskiBroj" type="xs:int" />
<xs:element name="naziv" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="adresaT">
<xs:sequence>
<xs:element name="ulica" type="xs:string" />
<xs:element name="kucniBroj" type="xs:int" />
</xs:sequence>
</xs:complexType>
」);
現在,我不想把整個XML文檔放到一行。至少我認爲這是不好的。 我想在一個表中移動「poslovnice」(包含多個「poslovnica」),在其他表中移動「vozila」... 將Poslovnica中的每個「poslovnica」放在Poslovnica表中的一行中還是將所有元素「 poslovnica「在一行? 自從SQL Server不支持唯一的xml數據類型以來,唯一性又如何呢?我已經看到您可以使用觸發器和函數,還有其他方法嗎? 此外,如果我打破了XML文件,並在其中一個表和他們的vozila poslovnice,如何實現以顯示vozilo屬於poslovnica,我應該把poslovnica的id在XML中的每個vozilo或我應該引用行SQL Server?
或者你會推薦一些其他數據庫?
非常感謝你,我很抱歉,如果我不太清楚:(!
米羅斯拉夫