Я недавно начал работать в новом магазине, в котором используется соглашение об именах таблиц, например:
- Пользователи
- UserRoles
- UserUserRoles
- UserProfiles
- UserProfileLanguages
Я использовал следующее соглашение:
- Пользователи
- Роли
- UserRoleMaps
- Профили
- Языки
Когда мой начальник спросил, почему я не добавляю префиксы к моим таблицам, я объяснил, что диаграмма базы данных намного лучше объяснит все отношениячем любое соглашение об именах. Я ошибаюсь, предполагая, что?
Я готов признать, что первый пример является более полным (особенно если вы смотрите только на таблицы напрямую), но каково предпочтительное решение для ORM? Например, в LINQ я получал бы доступ к языку моего пользователя так:
User.Profile.Language
, тогда как первый пример был бы:
User.UserProfile.UserProfileLanguage
Конечно, я мог бы легко переименовать мои таблицы в конструкторе LINQ в любое удобное для меня время, но это быстро становится проблемой, если схема данных постоянно меняется.
EDIT: в качестве примера удален префикс APP_, поскольку он не имеет отношения кэтот вопрос.