Я хочу внедрить систему обмена сообщениями в стиле Facebook (цепочку сообщений) на мой сайт.
Как вы думаете, эта разметка схемы выглядит хорошо?
Doctrine schema.yml:
UserMessage:
tableName: user_message
actAs: [Timestampable]
columns:
id: { type: integer(10), primary: true, autoincrement: true }
sender_id : { type: integer(10), notnull: true }
sender_read: { type: boolean, default: 1 }
subject: { type: string(255), notnull: true }
message: { type: string(1000), notnull: true }
hash: { type: string(32), notnull: true }
relations:
UserMessageRecipient as Recipient:
type: many
local: id
foreign: message_id
UserMessageReply as Reply:
type: many
local: id
foreign: message_id
UserMessageReply:
tableName: user_message_reply
columns:
id: { type: integer(10), primary: true, autoincrement: true }
user_message_id as message_id: { type: integer(10), notnull: true }
message: { type: string(1000), notnull: true }
sender_id: { type: integer(10), notnull: true }
relations:
UserMessage as Message:
local: message_id
foreign: id
type: one
UserMessageRecipient:
tableName: user_message_recipient
actAs: [Timestampable]
columns:
id: { type: integer(10), primary: true, autoincrement: true }
user_message_id as message_id: { type: integer(10), notnull: true }
recipient_id: { type: integer(10), notnull: true }
recipient_read: { type: boolean, default: 0 }
Когда я получу новый ответ, я буду следить за тем, чтобы булевому значению "receient_read" для каждого получателя было присвоено значение false и, конечно,убедитесь, что sender_read также имеет значение false.
Я использую хеш для URL: http://example.com/user/messages/aadeb18f8bdaea49882ec4d2a8a3c062
(Поскольку идентификатор будет начинаться с 1, я не хочу иметь http://example.com/user/messages/1. Да,Я мог бы начать увеличиваться с большего числа, но я бы предпочел начать с 1.)
Это хороший способ сделать это?Ваши мысли и предложения будут высоко оценены.
Спасибо, ребята!