Какова наилучшая практика присвоения имен вашей "пользовательской" таблице?
Здесь три рекомендации, которые я пытаюсь выполнить при указании таблиц:
- Никогда не называйте таблицу с множественным числом (например, "пользователи" )
- Никогда не называйте таблицу с использованием зарезервированного ключевого слова (например, "пользователь" )
- Никогда не префикс своего имени таблицы с помощью "tbl" или какого-либо другого префикса типа объекта
Помня об этом, как вы рекомендуете указывать таблицу, в которой будут храниться пользовательские идентификаторы?
Ответы
Ответ 1
Я согласен, не используйте зарезервированные слова или цитаты или скобки или экранированные зарезервированные слова.
Назовите таблицу User Person.
Вам может быть интересен этот ответ и google для Стандарт ISO 11179 для обозначения Руководства
Ответ 2
Обычно я использую что-то вроде члена или учетной записи, в зависимости от приложения. Тем не менее, если вы используете современные инструменты и принципы проектирования (например, уровень абстракции db или ORM с объектно-ориентированной базой кода, которая отделяет бизнес-логику от доступа к данным), тогда именование таблиц становится неактуальным. Ваши разработчики должны всегда получать доступ к базе данных через четко определенный интерфейс, а не вручную писать SQL, который требует, чтобы они знали имя таблицы. Например, вы можете назвать учетную запись таблицы, но привязать ее к ней через объект с именем "Пользователь". Ваши разработчики не должны думать в терминах таблиц, а с точки зрения объектов доступа, которые не будут иметь одинаковых ограничений на именование:
$user = new User($username);
$user->authenticate($password);
Ответ 3
Используйте синоним. Какое слово использовать зависит от того, что именно вы храните в таблице, но account
поражает меня как хорошую альтернативу. Если вы хотите использовать вариацию user
, я бы сломал первое руководство, которое вы упомянули, а не второе или третье: users
достаточно распространено, что несогласованность по существу мнемоническая.
Ответ 4
Я использую правила CakePHP, даже если я не использую фреймворк:
Названия таблиц по нижнему регистру и множественные имена с именами нескольких слов, разделенные символами подчеркивания. Например, имя модели Ingredient
ожидает имя таблицы ingredients
. Имя модели EventRegistration
будет ожидать имя таблицы event_registrations
.
Ответ 5
Не используйте зарезервированные слова, слова в кавычках или экранированные слова в именах таблиц базы данных.
Если вы действительно хотите это сделать, вам нужно экранировать имена:
- кавычки: "
user"
- Выход из Java + JPA:
@Table(name = "\"user\"")
Я настоятельно не рекомендую использовать множественные миры для имен таблиц базы данных, таких как USERS
. Это ПЛОХАЯ ПРАКТИКА против соглашения об именах SQL. Имена таблиц базы данных должны быть существительными в единственном числе.
Я рекомендую использовать ACTOR
в качестве имени таблицы базы данных для хранения сведений о пользователях. Это название ясно, понятно и достаточно общее. Он также может быть использован для компаний и частных лиц (не как, например, PERSON
, который подходит только для человека, но не для компаний).