Проблема с построением БД

  db.execSQL("create table " + TABLE_NAME_POROD + "( " + namePorod_tier + " TEXT  primary key )");


    db.execSQL("create table " + TABLE_NAME_DATA_RECOUNT + " ( " + id + " INTEGER primary key AUTOINCREMENT , " + stepName + " INTEGER NOT NULL , " + namePorod_tier + " TEXT NOT NULL , " + countDrov + " INTEGER DEFAULT 0 ,   " + countDel + " INTEGER DEFAULT 0 ,   " + countSyx + " INTEGER DEFAULT 0 ,   " + countTreesNotFelling + " INTEGER DEFAULT 0 ,  FOREIGN KEY(" + namePorod_tier + ") REFERENCES " + TABLE_NAME_POROD + " (" + namePorod_tier + " )) ");

Нужно сделать связь 1 к M 1(таблица TABLE_NAME_POROD поле namePorod_tier ):M(таблица TABLE_NAME_DATA_RECOUNT поле namePorod_tier ) При просмотре диаграммы показывает такую связь

введите сюда описание изображения

Нужно наоборот


Ответы (1 шт):

Автор решения: Anastasiya

Поменяйте местами строчки, и перенесите объявление связи по ключу в эту строчку

db.execSQL("create table " + TABLE_NAME_POROD + "( " + namePorod_tier + " TEXT primary key )");

Должно получиться так:

b.execSQL("create table " + TABLE_NAME_POROD + "( " + namePorod_tier + " TEXT  primary key , FOREIGN KEY(" + namePorod_tier + ") REFERENCES " + TABLE_NAME_DATA_RECOUNT + " (" + id + " ))");


    db.execSQL("create table " + TABLE_NAME_DATA_RECOUNT + " ( " + id + " INTEGER primary key AUTOINCREMENT , " + stepName + " INTEGER NOT NULL , " + namePorod_tier + " TEXT NOT NULL , " + countDrov + " INTEGER DEFAULT 0 ,   " + countDel + " INTEGER DEFAULT 0 ,   " + countSyx + " INTEGER DEFAULT 0 ,   " + countTreesNotFelling + " INTEGER DEFAULT 0 ) ");
→ Ссылка