Могут быть ограничения с тем же именем в DB?

Учитывая, что это используемый , необходимо было бы доверять пользователям очереди;-)

47
задан Community 23 May 2017 в 12:34
поделиться

3 ответа

  1. Вы можете использовать процесс OTP gen_supervisor для отслеживания экземпляров Haskell, которые вы создаете с помощью open_port (). В зависимости от того, как «порт» завершился, вы сможете перезапустить его или решить, что он остановлен специально, и позволить соответствующему процессу Erlang умереть тоже.

  2. Fugheddaboudit. Даже эти независимые от языка виртуальные машины, о которых вы говорите, иногда имеют проблемы с передачей данных между языками. Вы должны просто каким-то образом сериализовать данные между ними: база данных, XML-RPC, что-то в этом роде.

Между прочим, идея единой платформы на всю оставшуюся жизнь, вероятно, также непрактична. Вычислительные технологии и мода меняются слишком часто, чтобы можно было ожидать, что вы всегда сможете использовать только один язык. Ваш вопрос указывает на это: ни один язык не делает все, что мы хотели бы, даже сегодня.

за исключением того, что имя не может начинаться со знака числа (#). Если имя_ограничения не указано, ограничению назначается имя, сгенерированное системой.

Сравните это с именем индекса :

Имя индекса. Имена индексов должны быть уникальными в таблице или представлении, но не обязательно в базе данных. Имена индексов должны соответствовать правилам идентификаторов.

, что явно сужает область действия идентификатора.

53
ответ дан 26 November 2019 в 19:39
поделиться

Я всегда был озадачен , почему имена ограничений должны быть уникальными в базе данных, поскольку кажется, что они связаны с таблицами.

Затем я прочитал об ограничении ASSERTION SQL-99, которое похоже на ограничение проверки, но существует отдельно от любой отдельной таблицы. Условия, объявленные в утверждении, должны выполняться последовательно, как и любое другое ограничение, но утверждение может ссылаться на несколько таблиц.

AFAIK ни один поставщик SQL не реализует ограничения ASSERTION . Но это помогает объяснить, почему имена ограничений охватывают всю базу данных.

10
ответ дан 26 November 2019 в 19:39
поделиться

Хорошей практикой является создание имен индекса и ограничений с указанием имени таблицы в начало. Существует 2 подхода, с типом индекса / ограничения в начале или в конце) например.

UQ_TableName_FieldName

или

TableName_FieldName_UQ

Имена внешних ключей также должны содержать имена ссылочных таблиц / полей.

Одно из хороших соглашений об именах состоит в том, чтобы давать имена таблиц в форме FullName_3LetterUniqueAlias, например.

Employers_EMR
Employees_EMP
BankAccounts_BNA
Banks_BNK

Это дает вам возможность использовать «предопределенные» псевдонимы в запросах, что улучшает читаемость, а также упрощает именование внешних ключей, например:

EMPEMR_EmployerCode_FK
BNKEMR_EmployerCode_FK
0
ответ дан 26 November 2019 в 19:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: