Моделирование пользовательских данных для SQL - PullRequest
0 голосов
/ 01 апреля 2012

Я работаю над веб-приложением на PHP, которое будет работать с пользовательскими данными в MySQL.

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

Моей первой мыслью было создание отношения OneToMany из пользовательской таблицы в другую таблицу.Эта другая таблица связывает не всю структуру данных, а, наконец, всю структуру данных.

user_receiver-table:
user_id | receiver_id | description
1       | 2           | relation to characteristics
1       | 3           | relation to user logs
2       | 4           | relation to picture table

Эта мысль в целом хороша?

Как скрыть разные таблицы за одним столбцом (и его идентификатором)?

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Модель данных отражает ваши знания о проблеме, которую вы пытаетесь решить. По мере того, как ваше понимание проблемы развивается (и / или внешние субъекты предъявляют новые требования), изменения в модели данных неизбежны. Вы не сможете полностью автоматизировать этот процесс, несмотря ни на что.

При этом вы должны быть в состоянии достичь некоторой степени "универсальности", используя один из следующих вариантов:

1. Наследование

Например:

enter image description here

2. Модель сущность-атрибут-значение

A очень упрощенное представление этого будет:

enter image description here

Оба имеют свои плюсы и минусы, но в двух словах, опция (1) менее универсальна, но более «безопасна для типов».

1 голос
/ 01 апреля 2012

Вы можете использовать представления.http://net.tutsplus.com/tutorials/databases/introduction-to-mysql-views/

Однако вы не можете добавлять значения к представлению, когда оно связано со многими таблицами.

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

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