у меня есть проблема, которую я хочу решить наилучшим образом. Дело в том, что я сделал схему, которая выглядит так:
Распечатать("
<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-документ в одну строку. По крайней мере, я считаю, что это плохо. Я хотел бы переместить "пословницу" (содержит несколько словниц) в одну таблицу и "возила" в другую ... И что лучше: каждую «пословницу» поместить в одну строку в таблице «Пословница» или все элементы «пословница» в одной строке? А как насчет уникальности, поскольку SQL Server не поддерживает уникальный тип данных xml, я видел, что вы можете использовать триггеры и функции, есть ли другой способ? Кроме того, если я сломаю XML-документ и у меня есть пословницы в одной таблице, а их воззрения - в другой, как добиться, чтобы показать, что возило принадлежит пословнице, должен ли я помещать идентификатор пословницы в каждое слово в xml или ссылаться на строки в SQL Сервер?
Или вы бы порекомендовали другую базу данных?
Большое спасибо, извините, если я не совсем понял :(!
Мирослав


Ну, сначала вы должны спросить себя, почему вы хотите, чтобы он сохранялся в XML в базе данных? это кажется идеальным сценарием, чтобы иметь таблицы Poslovnica, Vozilo и Zaposlenik и иметь промежуточные таблицы, содержащие информацию о том, какой сотрудник какую машину и где арендовал.
Я вообще не вижу смысла хранить это в xml.