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

Или вы бы порекомендовали другую базу данных?

Большое спасибо, извините, если я не совсем понял :(!

Мирослав

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
464
1

Ответы 1

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

Я вообще не вижу смысла хранить это в xml.

Другие вопросы по теме