Имя таблицы: подчеркивание против Camelcase? пространства имен? Единственное или множественное число?
Я читал пару вопросов / ответов на StackOverflow, пытаясь найти "лучший", или я должен сказать, что должен принять способ, чтобы назвать таблицы в базе данных.
большинство разработчиков склонны называть таблицы в зависимости от языка, на котором требуется база данных (JAVA, .NET, PHP и т. д.). Однако я просто чувствую, что это неправильно.
то, как я называл таблицы до сих пор делает что-то вроде:
doctorsMain
doctorsProfiles
doctorsPatients
patientsMain
patientsProfiles
patientsAntecedents
то, что меня беспокоит являются:
- удобочитаемость
- быстрая идентификация модуля таблица из (врачи / / пациенты)
- легко понять, чтобы избежать путаницы.
Я хотел бы прочитать любые мнения по поводу правил именования.
Спасибо.
11 ответов:
Я обычно использую PascalCase и сущности являются единственными:
DoctorMain DoctorProfile DoctorPatientон имитирует соглашения об именах для классов в моем приложении, сохраняя все довольно аккуратно, чисто,последовательный, и легко понять, для всех.
нечувствительный к регистру характер SQL поддерживает
Underscores_Scheme. Однако современное программное обеспечение поддерживает любую схему именования. Однако иногда некоторые неприятные ошибки, ошибки или человеческий фактор могут привести кUPPERCASINGEVERYTHINGТак что те, кто выбрал какPascal_CaseиUnderscore_Caseсхема жить со всеми своими нервами в хорошем месте.
агрегация большинства из вышеперечисленного:
- не полагайтесь на случай в базе данных
- не рассматривайте случай или разделитель часть имени-только слова
- используйте любой разделитель или случай является стандартным для вашего языка
тогда вы можете легко переводить (даже автоматически) имена между средами.
но я бы добавил еще одно соображение: вы можете обнаружить, что есть и другие факторы, когда вы двигаетесь из класса в вашем приложении в таблице в вашей базе данных: объект базы данных имеет представления, триггеры, хранимые процедуры, индексы, ограничения и т. д. - которые также нужны имена. Так, например, вы можете получить доступ только к таблицам через представления, которые обычно являются просто "select * from foo". Они могут быть идентифицированы как имя таблицы только с суффиксом ' _v ' или вы можете поместить их в другую схему. Цель такого простого слоя абстракции заключается в том, что он может быть расширен при необходимости позвольте изменениям в одной среде не влиять на другую. Это не нарушит вышеуказанные предложения по именованию-просто еще несколько вещей, которые нужно учитывать.
Я использую подчеркивания. Я сделал проект Oracle несколько лет назад, и казалось, что Oracle заставил все мои имена объектов в верхнем регистре, что вроде бы ударяет по любой схеме корпуса. Я на самом деле не оракул, так что, возможно, был способ обойти это, о котором я не знал, но это заставило меня использовать подчеркивания, и я никогда не возвращался.
Я склонен соглашаться с людьми, которые говорят, что это зависит от соглашений языка, который вы используете (например, PascalCase для C# и snake_case для Ruby).
никогда camelCase, хотя.
поскольку вопрос не относится к конкретной платформе или движку БД, я должен сказать, что для максимальной переносимости вы всегда должны использовать имена таблиц в нижнем регистре.
/[a-z_][a-z0-9_]*/ это действительно единственный шаблон имен, который легко переводится между различными платформами. Строчная буквенно-цифровая + подчеркивание всегда будет работать последовательно.
Как уже упоминалось в другом месте,отношения (таблица) имена должны быть в единственном числе: http://www.teamten.com/lawrence/programming/use-singular-nouns-for-database-table-names.html
после прочтения многих других мнений я думаю, что очень важно использовать Соглашения об именах языка, согласованность более важна, чем Соглашения об именах, только если вы (и будете) единственным разработчиком приложения. Если вы хотите, чтобы читаемость (что имеет огромное значение) вы лучше использовать Соглашения об именах для каждого языка. Например, в MySQL я не предлагаю использовать CamelCase, поскольку не все платформы чувствительны к регистру. Так что здесь подчеркивание идет лучше.
к сожалению, нет "лучшего" ответа на этот вопрос. Как заявил @ David, согласованность гораздо важнее, чем соглашение об именах.
существует широкая вариативность в том, как разделять слова, поэтому вам придется выбирать все, что вам больше нравится; но в то же время, похоже, есть почти консенсус в том, что имя таблицы должно быть единственным.
Это мои пять копеек. Я пришел к выводу, что если БД от разных производителей используются для одного проекта есть два лучших способа:
- использовать подчеркивание.
- используйте случай верблюда с кавычками.
причина в том, что некоторые базы данных преобразует все символы в прописные и строчные. Так что, если у вас есть
myTableстанетMYTABLEилиmytableкогда вы будете работать с БД.
Comments