Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wiele relacji z tym samym modelem CakePHP

Wydaje mi się, że nie potrzebujesz wspólnej tabeli dla faktur, nadawców i odbiorców. Możesz przechowywać te klucze obce w tabeli faktur. Twoje relacje byłyby wtedy:

<?php
class Invoice extends AppModel {

    public $belongsTo = array(
        'Sender' => array(
            'className' => 'Account',
            'foreignKey' => 'sender_id'
        ),
        'Receiver' => array(
            'className' => 'Account',
            'foreignKey' => 'receiver_id'
        )
    );
}

Jeśli chcesz następnie odróżnić faktury, które zostały wysłane lub nie, możesz również dodać kolumnę o nazwie status_id lub podobny i zapisz inny klucz obcy w nowych statuses tabeli z kolumną ID i nazwą oraz następującymi przykładowymi danymi:

id name
== ====
1  Draft
2  Sent

Oraz wszelkie inne statusy, których możesz potrzebować.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wskazówki dotyczące zapewniania wydajności bazy danych MySQL — część druga

  2. MySQL:kolumna obliczeniowa

  3. Utwórz diagram bazy danych w środowisku MySQL Workbench

  4. Tablica partycji MySQL 5.5 według A-Z

  5. SQL - suma niektórych wierszy minus suma innych wierszy