2016-04-21 3 views
0

Я хочу представить отношение многих ко многим в реляционной модели, и у меня есть некоторые сомнения.Представляете много-много отношений в sqlite

CREATE TABLE TipoDeSeguro 
(
    tipoSeguro TEXT NOT NULL, 
    tipoDeSeguroID INTEGER NOT NULL PRIMARY KEY 
) 
; 

CREATE TABLE Cobertura 
(
    nome TEXT NOT NULL, 
    coberturaID INTEGER NOT NULL PRIMARY KEY 
) 
; 

Это те таблицы, в которые я хочу присоединиться, используя много-много отношений.

CREATE TABLE JoinTipoDeSeguroToCobertura 
(
    coberturaID INTEGER, 
    tipoDeSeguroID INTEGER 
) 
; 

Это моя таблица соединений. Являются ли оба эти кортежа ОСНОВНЫМИ КЛЮЧАМИ? Должны ли они оба ссылаться на их основной класс?

С наилучшими пожеланиями

ответ

2

Они должны быть внешние ключи и not null при необходимости.

CREATE TABLE JoinTipoDeSeguroToCobertura 
(
    coberturaID INTEGER not null, 
    tipoDeSeguroID INTEGER not null, 

    foreign key(coberturaID) references Cobertura(coberturaID), 
    foreign key(tipoDeSeguroID) references TipoDeSeguro(tipoDeSeguroID) 
); 
+0

и, возможно, coberturaID и tipoDeSeguroID не должны быть NULL, не так ли? – Perseverance

+0

@ Непременно забудьте включить ограничение внешнего ключа, используя 'pragma foreign_keys = on;' а затем попробуйте вставить ничего для одного из столбцов таблицы, и вы получите «Ограничение FOREIGN KEY failed». – Ch0k0l8

+0

На самом деле, это * возможно вставить NULL в 'JoinTipoDeSeguroToCobertura', поэтому NOT NULL по-прежнему будет полезен, если необходимо. И оба столбца должны быть частью первичного ключа. –

 Смежные вопросы

  • Нет связанных вопросов^_^