Лучшая практика: лучшее соглашение об именах базы данных для JPA?

В Java соглашение об именах для свойств и классов (сущностей) выполняется способом CamelCase :

@Entity 
public class UserMessage implements Serializable { 
    @Id 
    private Integer id; 
    private String shortTitle;
    private String longTitle;
    private String htmlMessage; 
} 

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

CREATE TABLE USER_MESSAGE (
    USER_MESSAGE_ID  MEDIUMINT(8) NOT NULL,
    USER_MESSAGE_SHORT_TITLE VARCHAR(20),
    USER_MESSAGE_LONG_TITLE VARCHAR(80),
    USER_MESSAGE_HTML_MESSAGE TEXT NOT NULL
); 

Следует ли мне следовать обоим стандартам и использовать атрибут имени в @Table и @Column? Или мне следует следовать соглашениям Java и полагаться на сопоставления JPA по умолчанию.

Каков наиболее общий подход и / или лучший подход к этому конфликту стандартов?

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