Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Laravel Schema ~ Incrementar sem ser PK

Pessoal estou fazendo um WebApp no estilo Trello, entretanto, ele é bem mais simples, tendo apenas uma Board, mas será possível criar várias Lanes(colunas) e Tasks(tarefas) em uma Lane.

Estou usando Laravel 5.6 e Vue com VueDraggable para que seja possível arrastar uma Task para outra Lane. Minha dúvida é sobre a posição de uma Task. A princípio fiz a tabela tasks da seguinte maneira:

        Schema::create('tasks', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('position')->unique();
            $table->integer('lane_id')->unsigned();
            $table->text('content');
            $table->timestamps();
        });

A coluna position não é PK, ou seja, não possui um auto_increment. Eu não consigo adicionar uma task, pois não sei como fazer um increment em position quando eu fazer um insert.

É melhor deixar a position como PK? Digo isto, pois como irei mudar a posição de uma Task, não sei se é uma boa idéia alterar o valor de uma PK.

2 respostas
solução!

Boa Mathews, legal sua ideia de implementar o trello. Com certeza você vai encontrar bastante desafios =)

É melhor deixar a position como PK? Digo isto, pois como irei mudar a posição de uma Task, não sei se é uma boa idéia alterar o valor de uma PK.

A primary key é aconselhavel que seja um valor numerico independente da regra de negocio.

Qual o problema em incrementar a posição? Você pode realizar esse incremento em memoria ao invés de incrementar automaticamente pelo banco de dados.

Bem, não sei onde estava com a cabeça quando eu criei o tópico hehehe... Acredito que estava de cabeça cheia e não estava conseguindo racionar direito.

No final deu tudo certo, pois a solução foi bem simples :)


Estou bastante feliz fazendo este sistema, pois estou aprendendo muito sobre o Pusher, Events e Laravel Echo. Essa é a minha primeira aplicação "Realtime" :)