Как синхронизировать перечисления в БД с вашим PHP-кодом? - PullRequest
5 голосов
/ 08 ноября 2010

БД с несколькими сотнями таблиц обычно содержит более нескольких перечислений / наборов.
Как вы синхронизируете свой PHP-код со значениями перечисления, чтобы избежать использования строковых литералов в вашем коде (который мы все знаемэто просто кажется проще, но в долгосрочной перспективе это приводит к глупым ошибкам).
Единственное хорошее решение, о котором я могу подумать, - это использование во время сборки проекта процесса, который будет генерировать константы для всех перечислений в БДили создайте и скомпилируйте расширение PHP с этими значениями.
Есть ли другие, более лучшие решения?

1 Ответ

3 голосов
/ 08 ноября 2010

Как сказал бы Платон: либо PHP и SQL независимы, либо SQL генерируется из PHP, либо PHP генерируется из SQL, либо оба генерируются из одного и того же источника.

Первое обычно неприемлемо, если происходит много изменений, но в остальном довольно стабильно.

Второе - это то, что происходит с множеством недавних решений, которые управляют вашим SQL со стороны PHP (и также корректно обрабатывают изменения схемы со стороны PHP).Это означает, что ваши безумные навыки ниндзя в SQL могут быть бесполезными и разочаровывать .

Третье - это то, что вы предлагаетеЭто нормально, если вы можете управлять частью, сгенерированной во время сборки, не ступая на ноги вашей системы контроля версий и вашей системы пакетов.Чистая система сборки помогает (что несколько необычно в PHP).

Четвертый включает адаптацию существующего инструмента моделирования базы данных для генерации как схемы SQL, так и кода PHP.Таким образом, вы будете просто работать с инструментом раз в две недели, генерировать как PHP, так и SQL и фиксировать результат.Адаптация инструмента, однако, может быть довольно неприятной (с другой стороны, вы можете попытаться найти экспорт XML и работать оттуда).

...