• Для чего нужен составной ключ в mysql?

    @evocatus
    разработчик на FPGA, программист, учитель
    Очень хороши составные ключи для таблиц с соотношениями типа многие-ко-многим. Например: есть таблица с авторами и таблица с книгами, но т.к. у одной книги может быть несколько авторов и у одного автора несколько книг, то сопоставление автор/книга мы можем хранить с таблице типа many-to-many. Вводить для неё суррогатный ключ (все эти id INT INSUGNED PRIMARY KEY AUTO_INCREMENT) совершенно не нужно - в качестве ключа можно взять комбинацию первичных ключей из таблиц авторов и книг.

    А если мы имеет таблицу many-to-many, которая сопоставляет две других таблицы с естественными ключами, и выбрали для many-to-many составной ключ, являющийся, таким образом, комбинацией двух естественных ключей, то иногда получается вообще избавиться от лишнего JOIN при запросе, что очень неплохо, потому что самая важная информация уже есть в самом ключе.
    Ответ написан
    Комментировать
  • Как передать значения из C# в Python?

    @evocatus
    разработчик на FPGA, программист, учитель
    Если бы единственной ОС в мире была Linux, то я бы сказал: просто используйте именованные FIFO (man 7 pipe) (они есть и для Windows) или файловые сокеты (man 7 unix) (некий аналог есть для Windows). Можно даже взять ZeroMQ.
    Ответ написан
    Комментировать
  • Как хранить бизнес и бухгалтерские правила?

    @evocatus
    разработчик на FPGA, программист, учитель
    Если я правильно понял ту мысль дяди Боба (смотрел многие его выступления), то он имеет в виду inversion of control.

    Но мне кажется, что лучше использовать функциональное программирование. А как лучше делать архитектуру приложения, чтобы можно было постоянно менять правила не меняя остальной код... погуглите Mark Bastian Bottom Up vs Top Down Design. Даже если я кругом неправ, то всё равно рекомендую посмотреть - очень вдохновляющее видео.
    Ответ написан
    1 комментарий
  • Можно ли создавать приложение (мессенджер) под android (android studio) на php html css + MySQL?

    @evocatus
    разработчик на FPGA, программист, учитель
    Теоретически да, практически - нет. Придётся выучить язык программирования, у которого есть библиотеки для разработки на Android типа Java (это "родной" язык Android), Kotlin (ещё один "официальный" язык для разработки под Android), C# (для него есть отличный фреймворк Xamarin), F# (очень хороший ЯП, который может использовать Xamarin), Javascript (у него много разных фреймворков, например, React Native), Dart(Flutter, говорят, очень хороший фреймворк) и пр.
    Ответ написан
    6 комментариев