Compare commits

...

2 Commits

Author SHA1 Message Date
b1ek a3d9b8c4b0
refactor: use only blog_id on company and user for foreign keys 2024-11-28 02:21:54 +10:00
b1ek c3d489965c
add migration 2024-11-28 02:21:11 +10:00
3 changed files with 65 additions and 5 deletions

View File

@ -0,0 +1,61 @@
<?php
use yii\db\Migration;
use yii\db\Schema;
class m0000000_init extends Migration
{
public function safeUp()
{
$this->createTable('user', [
'id' => Schema::TYPE_PK,
'name' => Schema::TYPE_TEXT . ' NOT NULL',
'login' => Schema::TYPE_TEXT . ' NOT NULL',
'phone' => Schema::TYPE_TEXT . ' NOT NULL',
'avatar' => Schema::TYPE_TEXT,
'website' => Schema::TYPE_TEXT,
'passHash' => Schema::TYPE_TEXT,
'accessToken' => Schema::TYPE_TEXT
]);
$this->createTable('materials', [
'id' => Schema::TYPE_PK,
'title' => Schema::TYPE_TEXT . ' NOT NULL',
'content' => Schema::TYPE_TEXT . ' NOT NULL',
'blog_id' => Schema::TYPE_BIGINT,
]);
$this->createTable('companies', [
'id' => Schema::TYPE_PK,
'title' => Schema::TYPE_TEXT . ' NOT NULL',
'website' => Schema::TYPE_TEXT . ' NOT NULL',
'address' => Schema::TYPE_TEXT . ' NOT NULL',
'blog_id' => Schema::TYPE_BIGINT,
]);
$this->createTable('blogs', [
'id' => Schema::TYPE_PK
]);
$this->createTable('subscriptions', [
'user_id' => Schema::TYPE_BIGINT . ' NOT NULL',
'blog_id' => Schema::TYPE_BIGINT . ' NOT NULL',
]);
$this->createTable('comments', [
'user_id' => Schema::TYPE_BIGINT . ' NOT NULL',
'material_id' => Schema::TYPE_BIGINT . ' NOT NULL',
'content' => Schema::TYPE_TEXT . ' NOT NULL',
]);
}
public function safeDown()
{
$this->dropTable('user');
$this->dropTable('materials');
$this->dropTable('companies');
$this->dropTable('blogs');
$this->dropTable('subscriptions');
$this->dropTable('comments');
}
}

View File

@ -5,8 +5,6 @@ namespace app\models;
class Blogs extends \yii\db\ActiveRecord
{
public $id;
public $user_id;
public $company_id;
/**
* {@inheritDoc}
@ -21,12 +19,12 @@ class Blogs extends \yii\db\ActiveRecord
public function getUser()
{
return $this->hasOne(User::class, [ 'id' => 'user_id' ]);
return $this->hasOne(User::class, [ 'blog_id' => 'id' ]);
}
public function getCompany()
{
return $this->hasOne(Companies::class, [ 'id' => 'company_id' ]);
return $this->hasOne(Companies::class, [ 'blog_id' => 'id' ]);
}
/**

View File

@ -8,6 +8,7 @@ class Companies extends \yii\db\ActiveRecord
public $title;
public $website;
public $address;
public $blog_id;
/**
* {@inheritDoc}
@ -17,7 +18,7 @@ class Companies extends \yii\db\ActiveRecord
return [
[['id', 'title', 'website', 'address'], 'required'],
[['title', 'website', 'address'], 'string'],
[['id'], 'integer'],
[['id', 'blog_id'], 'integer'],
];
}