У меня есть столы; Категория, Предмет и класс.Связь с несколькими таблицами
Category -> id, name, desc;
Subject -> id, name, desc, category_id;
Grade -> id, name, desc, subject_id.
И у меня есть другой стол, Цена. В настоящее время
Price -> id, amount, category_id.
Да, цены были добавлены к категориям, но новое требование, цена может быть добавлена к любому уровню, то есть категории, Тема или Grade.
Я знаю способ решить эту проблему, добавив остальные внешние ключи в таблицу цен, as -> id, amount, category_id, subject_id, grade_id. Затем оставьте их NULL, чем соответствующая таблица.
Я не знаю, это лучшее решение, и мне нравится создавать идеальную схему базы данных. Пожалуйста, предложите альтернативные варианты решения.
Я использую MySQL и PHP.
Возможный дубликат [Возможно использовать внешний ключ MySQL для одной из двух возможных таблиц?] (Http://stackoverflow.com/questions/441001/possible-to-do-a-mysql-foreign-key-to -один-двух-возможных таблиц) –