Проектирование базы данных 3NF - PullRequest
0 голосов
/ 25 октября 2018

Я проектирую 3nf (реляционную) базу данных для системы управления страхованием.

Вот мое краткое изложение:

Система должна предоставлять средства для связи своих клиентов и автомобилей с зарегистрированными авариями.Каждый клиент имеет имя, адрес и может иметь одно или несколько водительских прав.Один клиент может владеть 1 или более автомобилями.Автомобиль имеет регистрационный номер, модель и год выпуска.Каждый автомобиль ассоциируется с нулевым количеством зарегистрированных несчастных случаев.Каждая авария имеет номер отчета, дату, место и сумму ущерба.Я составил следующие таблицы:

CREATE TABLE Customer(CID int primary key, Address varchar (50),Name varchar (50));
CREATE TABLE Driving_Lisc (CID int, Lisc_NO int, primary key);
CREATE TABLE Car(Reg_No varchar (20) primary key, Model nvarchar (20),year int)
CREATE TABLE Owns(CID int, Reg_No nvarchar(20) composite key)
CREATE Accident (Reported_No int primary key, Location varchar (40), date date)
Participated(CID int, Reg_No nvarchar(20), Reported No int primary key, damage Amount float)

Я проверяю, правильно ли я выполнил эти базы данных для выполнения запросов SQLite.

1 Ответ

0 голосов
/ 25 октября 2018

Ответ НЕТ , то есть код не будет работать с использованием SQLite из-за: -

В CREATE TABLE Driving_Lisc (CID int, Lisc_NO int, primary key); есть посторонние ,, которыеprimary key или имя и тип столбца опущены после запятой.

В CREATE TABLE Owns(CID int, Reg_No nvarchar(20) composite key) Composite не является ключевым словом SQLite, можно ожидать после типа столбца ('nvarchar (20)').

В CREATE Accident (Reported_No int primary key, Location varchar (40), date date) вы не указываете, что СОЗДАТЬ.Вы, вероятно, захотите, чтобы CREATE TABLE Accident (Reported_No int primary key, Location varchar (40), date date)

с использованием Participated(CID int, Reg_No nvarchar(20), Reported No int primary key, damage Amount float) приведет к синтаксической ошибке, поскольку нет ключевых слов SQL, указывающих, что должно быть сделано.Возможно, вы хотите CREATE TABLE Participated(CID int, Reg_No nvarchar(20), Reported No int primary key, damage Amount float)

...