No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Creación del schema de la base de datos

8/35
Recursos

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hola, si bien el profe indica que las convenciones de las tablas y los campos son mas bien personales para Yii, Laravel, y en especial los frameworks que usan el ORM de Eloquent, si tienen una forma reomendada de nomenclatura. 1. Las tablas se llaman en ingles y en plural ¿Por qué en inglés? Porque es mas probable que el plural de una palabra sea el singular de esta misma con "s" al final ("user"->"users") Así, Eloquent ausme por defecto que si estas en el modelo App\Models\User, la tabla será users 2. En laravel sí prefieren usar id en vez de book\_id ¿Por qué? Porque cuando en otra tabla usas una llava foranea, simplemente la llamas con el nombre de la tabla en singular + "raya al piso" + "nombre el campo". Ej: book\_id . Cuando haces relaciones entre modelos, sí usas las conveniones, Eloquent hará asumpciones por defecto, y te ahorrarpa muichas lineas de código. Hay más tips, pero principalmente te recomiendo esos. En general los uso aunque no esté desarrollando en Laravel.
Para continuar con el aprendizaje de yii2, dejo por aqui como serian los codigos para las migraciones: ```js php yii migrate/create create_authors_table ``````js public function safeUp() { $this->createTable('{{%authors}}', [ 'id' => $this->primaryKey(), 'name' => $this->string()->notNull(), 'nationality' => $this->string(2), ]); } ```Si la tabla books tiene llave foranea hacia authors, por eso primero se crea la tabla authors y despues books. ```js php yii migrate/create create_books_table ```La dificultad que encontre fue en el tema de las llaves foraneas, la gramatica de yii no me fue tan clara pero finalmente la pude entender, aqui con comentarios en cada linea : ```js public function safeUp() { $this->createTable('{{%books}}', [ 'id' => $this->primaryKey(), 'title' => $this->string()->notNull(), 'author_id' => $this->integer()->notNull(), ]); // Add foreign key for column `author_id` to `users` table $this->addForeignKey( 'fk-books-author_id', // Name of the foreign key '{{%books}}', // The table that contains the foreign key 'author_id', // The column that contains the foreign key '{{%authors}}', // The referenced table 'id', // The primary key in the referenced table 'CASCADE', // What to do on delete (e.g., CASCADE, SET NULL) 'CASCADE' // What to do on update (e.g., CASCADE, SET NULL) ); } ```    con las migraciones listas, se ejecuta asi: ```js yii migrate ``` si acaso ocurre algun problema o queremos devolvernos, tii devuelve de una migracion a la vez asi: ```js yii migrate/down ``` Y finalmente comentar que si deseamos mas control (no se si total) de la base de datos, y modificar el charset o el collate etc, tambien se puede, chekense la documentacion.
![](https://static.platzi.com/media/user_upload/image-9bc84e3e-3fe5-4a4e-ad69-cd7e2076b73d.jpg)