2016-05-12 3 views
0

Так что я довольно новичок в структуре базы данных. И в настоящее время мне нужно создать систему уведомлений для моего веб-приложения. После поискового запроса на некоторое время я нахожу the first answer.Как TINYINT хранит значение строк в MySQL

Почему activity_type является TINYINT? Не полагается ли это быть строкой, потому что он говорит, что примерное значение похоже на «добавленный избранный». Кто-нибудь может помочь?

ответ

0

Да, не следует этому примеру.

Он использует числа в TINYINT, которые имеют магические значения и, скорее всего, представлены в его коде как константы, поэтому 1 означает один вид деятельности, 2 означает другой и т. Д., И только код знает эти значения - не база данных.

Тогда есть «source_id», который ссылается на необъявленный, незакрепленный внешний ключ, ссылающийся на одну из нескольких других таблиц. Не делай этого.

В столбце базы данных все значения должны иметь то же значение - все они должны быть из одного и того же информационного домена. Если есть столбец «thing_id», он всегда должен ссылаться на «id» строки в таблице вещей. Он должен не ссылаться на строку в таблице «thing1» иногда или, может быть, на строку в таблице «thing2» в другое время, в зависимости от того, установлено ли значение «thing_type» равным «1» или «2» ... yuck.

Вероятно, для такого дизайна существуют практичные варианты использования, но я бы интерпретировал эту модель как предупреждение с красным флагом о базе данных, которая не обеспечивает принудительной ссылочной целостности ... и это не согласуется с передовой практикой для реляционных баз данных.

Примечание от его последнего комментария ...

Нет соединения.

Он не использует реляционную базу данных как реляционную базу данных. Он использует его почти как хранилище ключей/ценностей.

+0

Хорошо, хорошо сказано, я понимаю, что вы имеете в виду. Итак, какое-нибудь предложение для улучшения? –

 Смежные вопросы

  • Нет связанных вопросов^_^