2016-09-01 5 views
-2

Я разработать таблицу уведомлений в MySQL, которых атрибуты

1.Created_At DateTime с использованием текущего времени
2.notification_type VARCHAR (100)
3.IS_Read булево
4.message, который я ве, чтобы показать, в зависимости от типа уведомления
5.Notification_ID AUTO_INCREMENT как первичный ключ
Эти атрибуты, которые я вхожу в моей таблице уведомлений

Теперь мои вопросы является тха t Эти атрибуты достаточно? или мне нужно добавить еще ??? Какие атрибуты должны быть в таблице уведомлений?

Edited
Ok теперь мои атрибуты таблицы уведомлений выглядеть

1.Created_At DateTime с использованием текущего времени

2.notification_type VARCHAR (100)

3.Status Int (2) в этом I 'll хранить статус уведомления, что он отображается и читается или нет в двоичном формате [00, 01, 10, 11] = левая сторона двоичного повторения указывает, было ли уведомление прочитано, а с правой стороны - скрыта ли она.

4.message который я показать в соответствии с типом уведомления

5.Notification_ID AUTO_INCREMENT в качестве первичного ключа

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

Теперь снова мой вопрос такой же
Этих атрибутов достаточно? или мне нужно добавить еще ??? Какие атрибуты должны быть в таблице уведомлений?

Проектирование таблицы базы данных Notification

+0

Где вы планируете показывать эти уведомления? На веб-сайте? В мобильном приложении? Как приложение для браузера? –

+0

Второй вопрос чрезвычайно широк, потому что это вопрос дизайна. – Shadow

+0

Я делаю это для веб-сайта и хочу показывать уведомления, такие как facebook или streamoverflow. –

ответ

1

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

  1. Вы всегда должны добавить первичный ключ к столам, особенно к этому, как вы собираетесь обновить строку, чтобы установите поле is_read. В этом случае вам нужен какой-то идентификатор, вы можете назвать его id, этот идентификатор будет представлять идентификатор уведомления, и он должен быть автоматически увеличиваться.
    Кроме того, я хотел бы задать поле status вместо is_read, чтобы указать возможности нескольких состояний для одного уведомления.
    Кроме того, я думаю, что вашей таблице не хватает целевого объекта, например пользователя, с которым связано это уведомление. В случае общих уведомлений (для всех пользователей) вы не указали это.
  2. В принципе, если вы хотите показать его на своем веб-сайте, вы должны создать сценарий (скрипт PHP в вашем случае), который получает все непрочитанные уведомления (или все конкретного пользователя) из БД и возвращает список уведомлений , длинный с их идентификаторами, в JSON или любом другом формате, который вам нравится. Затем клиент (например, JavaScript на вашем веб-сайте) должен вызвать этот скрипт, чтобы получить список уведомлений. Вы можете настроить скрипт на проверку каждые несколько минут для поиска любых новых уведомлений (или использовать сокет-соединение, но оно более усложняется как POC, особенно для тех, кто к этому не знаком).

Я надеюсь, что это объясняет основную концепцию того, как она должна работать, и где вы должны начать.
Если у вас есть более конкретные или технические вопросы, я был бы рад помочь.

Удачи!


Теперь могли бы вы объяснить подробнее о переменной состояния

Статус представляется как INT и это твое, чтобы решить. Например, если вы хотите скрыть свое уведомление с панели уведомлений, то это должно быть указано по статусу. Допустим, у вас есть два разных типа состояний, скрытые или нет, и читайте или нет. В этом случае классическим является создание статуса в следующем двоичном представлении: 11, 10, 01, 00. Когда левая часть двоичного представления указывает, было ли уведомление прочитано, а с правой стороны - скрыта ли она.
Например:

  • Статус 0, представляет 00 в двоичной системе, означает, что уведомление показывается, а не читать.
  • Статус 1, представляет 01 в двоичном формате, означает, что уведомление скрыто и не читается.
  • Состояние 2, представляет 10 в двоичном формате, означает, что уведомление отображается, и оно было прочитано.
  • Состояние 3, представляет 11 в двоичном формате, означает, что уведомление скрыто, и оно было прочитано.

Позже вы можете легко проверить с бинарными операторами, для каждого случая, например, в JavaScript:

var STATUS_READ = 2; 
var STATUS_SHOW = 1; 

function isRead(status) 
{ 
    return !!(status & STATUS_READ); 
} 

function isVisible(status) 
{ 
    return !!(status & STATUS_SHOW); 
} 

также просьба уточнить объект назначения, который вы говорите, что, как он работает и когда использовать и почему. Также расскажите мне о целевом объекте datatype

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

+0

Я добавил первичный ключ с именем notification_ID с автоматическое приращение.теперь вы могли бы объяснить больше о переменной состояния и ее типе данных. также, пожалуйста, уточните объект назначения, о котором вы говорите, о том, как он работает, и когда использовать и почему. Также расскажите мне о типе данных объекта назначения. Сначала я сделаю его таблицу, чем я начну работать над панелью уведомлений, например facebook или stackexchange. –

+0

Серьезно ?! нисходящая линия? –

+0

жаль, что это было по ошибке, моя система потерпела крах, поэтому вы можете уточнить, что я прошу –