2010-10-14 3 views
0

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

пользователей (номер, имя, ......) рестораны (номер, имя .....)

модули (номер, имя) [В этой таблице хранятся модули - (1 пользователь) и (2, ресторан)

мое сообщение таблица

status_messages (ID, PID, сообщение, время, MODULE_ID, moduleID)

идентификатор - Uid, первичный ключ pid - само ID или идентификатор родительского - для размещения ответов в той же таблице. сообщение - сообщение о состоянии хранится здесь - время, сообщение о состоянии был установлен MODULE_ID - относится к модулю его наведение - пользователи или Restaruants moduleID - фактический foriegn ключ

Это правильный путь около ?

шкала приложения - это будет открытое приложение по всему миру. так будет одна таблица масштаба для всех этих ресторанов и пользователей.

  1. У меня есть похожие модели для отзывов, которые будут обслуживать рестораны, блюда, события, буфеты ... на одном столе. это было бы более убийство.
+0

Что такое модуль? –

+0

Я просто звоню в модули пользователей и ресторанов. –

+1

Я не понимаю, чего вы пытаетесь выполнить, но наличие двух идентификаторов модулей в вашей таблице status_messages выглядит странно. Кроме того, почему нет связи с таблицей пользователей? – dhofstet

ответ

1

Да, этот дизайн должен быть точным, вы хотите поместить какой-то индекс в столбец status_messages.module_id, чтобы выборки на таблице могли быть отфильтрованы пользователем/рестораном.

Обычно на стороне сервера, вы можете создать два класса для таблицы сообщений о состоянии

1 класс UserMessages 2-й RestaurantMessages класса

и использовать какую-то ОРМ инструмент для определения MODULE_ID в качестве столбца decriminator. Таким образом, в базе данных это в одной таблице, чтобы максимизировать повторное использование. Но в приложении есть два разных имени (логические имена). Не знаете, как это работает в PHP.

+0

Также возможно, вам стоит переименовать модуль в ParentTable, чтобы другие люди могли понять ваше наименование лучше. – Daveo

+0

спасибо. да, я думаю, люди путаются. с соглашением об именах: D –

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