create table A (id, col_A, col_B, col_C)
id = уникальный идентификатор
для каждой сохраняемой строки допустимым значением будет col_A или col_B, но оба столбца не будут иметь значения для каждой сохраняемой строки одновременно.
например.
insert into A (id, col_A, col_C) values (1, "a", "c")
insert into A (id, col_B, col_C) values (1, "b", "c")
insert into A (id, col_A, col_C) values (1, "aa", "cc")
insert into A (id, col_B, col_C) values (1, "bb", "cc")
примечание: col_A и col_B не могут быть объединены в один столбец согласно дизайну.
Я хотел бы включить условную проверку, не равную NULL, в col_A и col_B на основе вышеуказанного ограничения (то есть для каждой строки должно присутствовать по крайней мере col_A или col_B). Как мне этого добиться?
EDIT:
1. Мы хотели бы поддержать следующие базы данных, чтобы начать с H2, MySQL, Postgres
2. Мы также хотели бы выразить ограничения с помощью аннотаций JPA вместо конкретного синтаксиса базы данных.
3. Основным слоем ORM является Hibernate 3.3.x