Я хочу иметь одну таблицу, содержащую информацию о людях (имя, телефон, адрес электронной почты) с именем contacts
, которая затем может быть связана с несколькими другими таблицами (clients
, properties
, jobs
). Тем не менее, я понятия не имею, как подойти к этому через Eloquent. Я рассмотрел наличие 2 дополнительных полей в таблице contacts
, entity_id
и entity_type
для идентификации связанных записей в других таблицах, но я надеюсь, что есть более чистый, более Laravel способ достижения sh this.
create_contacts_table. php
Schema::create('contacts', function (Blueprint $table) {
$table->id();
$table->string('first_name')->nullable();
$table->string('last_name')->nullable();
$table->string('phone')->nullable();
$table->string('email')->nullable();
$table->timestamps();
});
create_clients_table. php
Schema::create('clients', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('address_1');
$table->string('address_2')->nullable();
$table->string('city')->nullable();
$table->string('state')->nullable();
$table->integer('zip_code')->nullable();
$table->timestamps();
});
create_properties_table. php
Schema::create('properties', function (Blueprint $table) {
$table->id();
$table->string('address_1');
$table->string('address_2')->nullable();
$table->string('city');
$table->string('state');
$table->integer('zip_code');
$table->timestamps();
});