Обеспечение ссылочной целостности между столбцами в таблице - PullRequest
0 голосов
/ 16 июня 2011

В настоящее время у меня есть модель таблицы в следующем формате:

критерий (критерии_ид, имя_критерия)

критерии_данных (критерии_ид, значение)

Я намереваюсь сохранить информацию, связанную с датой, в таблице в том смысле, что один критерий (критерии даты) может содержать только одну дату в таблице crit_data, тогда как другие критерии_данные могут быть ценой акции на дату в отдельный ряд (Другое осложнение заключается в том, что название акции также является критерием)

Моя проблема:

Как я могу гарантировать, что в таблицу можно ввести только 1 цену (критерии одной строки) для конкретной даты и названия акции (2 других отдельных критерия и строки).

Я действительно не хочу применять это на уровне приложений, поэтому я в основном ищу решения для уровня БД, если таковые имеются.

Я также готов отказаться от всей моей табличной модели, если предложена более подходящая модель данных.

EDIT После того, как мне сообщили о моей глупости (см. Пост dPortas ниже), я признаю, что это не разумный путь. Я думал о новой модели:

attribute_data (stockName, цена, максимум, минимум, цена, изменение)

Хотя это то, на что это похоже, я думаю, что фактические имена столбцов будут идентификатором, содержащим значение attribute_id. Например, поле stockname может быть col_1, а high - col_3, но это обеспечит целостность различных столбцов.

Что думают люди по этому поводу?

1 Ответ

1 голос
/ 16 июня 2011

Дизайн вашего стола выглядит подозрительно, как случай EAV . Недостатки этого анти-паттерна заключаются в том, что вы не можете точно хранить правильные типы данных или применять к ним ограничения. Я предлагаю вам пересмотреть дизайн.

Предлагаемый редизайн: критерии (идентификатор_ критерия, имя_критерия, дата, наименование акции, цена), ключ: (наименование акции, дата)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...