Проблема с построением БД
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 ) ");
