una tabla sencilla:
ID, NAME, POST_ID, GROUP_ID
Se debe configurar POST_ID o GROUP_ID, pero nunca ambos, NI ninguno de ellos. Entonces,
hay casos válidos:
ID, NAME, POST_ID, GROUP_ID
x, y, 1, NULL
x, y, NULL, 4
y casos NO VALIDOS:
ID, NAME, POST_ID, GROUP_ID
x, y, NULL, NULL
x, y, 4, 4
¿Es posible establecer una regla de restricción tan complicada?
Respuesta1
No creo que sea posible. Detectaría estos casos en la interfaz donde el usuario ingresa los datos. Además, quizás puedas reemplazar ambos campos con otros dos campos:
Un category
campo de tipo enum
con posibles valores 'post' o 'group' Un reference
campo que contiene el ID.
De esa manera, puede exigir fácilmente que ambos no estén vacíos y solo puede hacer referencia a una ID de publicación o una ID de grupo.