PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Хибернация „Инверсия“ във файла за картографиране

Inverse просто решава кой обект във връзка е отговорен за актуализирането на базата данни за отразяване на асоциацията.

Да приемем двупосочна асоциация едно към много. Има два класа в кода A и B, A съдържа набор от B, B поддържа препратка към A. На ниво база данни има само един външен ключ за актуализиране, таблицата за B съдържа колона към първичен ключ на А.

В този случай приемете, че поставяме обратното =вярно от страната на набора. Това означава, че самото добавяне на обект към набора няма да задейства актуализацията на външния ключ. Тъй като отговорността за актуализиране на външния ключ е на B. Така че добавянето на B обект към набора, който A поддържа, не е достатъчно за актуализиране на колоната с външен ключ. objectA.addToSetOfB(objectB) няма да засегне външния ключ.

Само когато B получи препратка към A, външният ключ в таблицата за B ще бъде актуализиран. Така че objectB.setA(objectA) със сигурност ще актуализира външния ключ и всъщност ще настрои връзката.

Мисля, че същата концепция ще се приложи и към взаимоотношенията много към много.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. какво прави операторът @> в postgres?

  2. Не може да се инсталира plpython3u - postgresql

  3. Не може да създаде разширения plv8 postgresql

  4. PostgreSQL поддържа ли прозрачно компресиране на таблици (фрагменти)?

  5. Docker compose postgresql услуга - не може да създаде потребител и база данни по време на изграждане?