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

Zmień środowisko wykonawcze tabeli nazwy modelu

Nigdy nie należy przechowywać żadnych informacji, takich jak lata, jako nazwy tabel od ich danych. Powinieneś przechowywać je jako osobne wpisy w tabeli, jako rzeczywiste dane użytkowe.

Zmień firma_historyczna_ po prostu company_historical i utwórz nową tabelę o nazwie firma_lata_historyczne który ma po prostu wszystkie możliwe lata Historyczne firmy wpisy mogą mieć.

Następnie utwórz relację między Historią firmy wpis i powiązane Lata historii firmy wpis.

Czyli coś takiego:

var CompanyHistoricalYears = sequelize.define('company_historical_years', {
    year: {
        type: Sequelize.INTEGER
    },
    classMethods: {
        associate: function (models) {
            CompanyHistoricalYears.hasMany(models.CompanyHistorical);
        }
    }
};


var CompanyHistorical = sequelize.define('company_historical', {
    ...
    classMethods: {
        associate: function (models) {
            CompanyHistorical.belongsTo(models.CompanyHistoricalYears);
        }
    }
};

a następnie możesz wysłać zapytanie za pomocą:

CompanyHistoricalYears.findOne({
    where: {
        year: 2011, // or you can use "new Date().getFullYear()"
    },
    include: [CompanyHistorical]
});

to da ci jeden CompanyHistoricalYears wpis i wszystkie HistoryczneComp wpisy z tego roku.

Jeśli nie ma to sensu, możesz skomentować wszelkie pytania.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA w Java SE:Obiekt:[email protected] nie jest znanym typem jednostki

  2. zaktualizuj, jeśli istnieją dwa pola, wstaw, jeśli nie (MySQL)

  3. 50 najważniejszych pytań do rozmowy kwalifikacyjnej MySQL, które musisz przygotować w 2022 r.

  4. 2017 @ Severalnines:Celebrujemy historie naszych klientów

  5. Powszechny błąd MySQL:„Wystąpił błąd odczytu pakietu komunikacyjnego”