|
|
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
Подскажите по проектированию простой БД 1. Есть список устройств, у каждого устройства есть свои атрибуты (размер, вес, цена). 2. Есть список клиентов который использует одно из устройств. Список устройств может пополняться. Также для каждого клиента надо будет получать его устройство с атрибутами. Как правильно сделать такую простую архитектуру? Я пока вижу 2 таблицы: Таблица 1 device id | attr1 | attr2 | attr3 Таблица 2 user id | device id Важно что атрибуты могут добавляться в будущем. Подкажите правильный подход или нужно что то изменить или добавить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2015, 23:19 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
sceЯ пока вижу 2 таблицы: Таблица 1 device id | attr1 | attr2 | attr3 Таблица 2 user id | device id Важно что атрибуты могут добавляться в будущем. Подкажите правильный подход или нужно что то изменить или добавить? Нормализуй это! Т.е. где-то так device: device_id, <bla-bla-bla> attribute: attribute_id, <bla-bla-bla> users: user_id, <bla-bla-bla> device_atribute: [device_id,attribute_id] PK users_device: [user_id,device_id] PK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 07:04 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
mad_nazgulsceЯ пока вижу 2 таблицы: Таблица 1 device id | attr1 | attr2 | attr3 Таблица 2 user id | device id Важно что атрибуты могут добавляться в будущем. Подкажите правильный подход или нужно что то изменить или добавить? Нормализуй это! Т.е. где-то так device: device_id, <bla-bla-bla> attribute: attribute_id, <bla-bla-bla> users: user_id, <bla-bla-bla> device_atribute: [device_id,attribute_id] PK users_device: [user_id,device_id] PK не туда запилил, здесь уже все нормализовано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 07:35 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
sceПодскажите по проектированию простой БД 1. Есть список устройств, у каждого устройства есть свои атрибуты (размер, вес, цена). 2. Есть список клиентов который использует одно из устройств. Список устройств может пополняться. Также для каждого клиента надо будет получать его устройство с атрибутами. Как правильно сделать такую простую архитектуру? Я пока вижу 2 таблицы: Таблица 1 device id | attr1 | attr2 | attr3 Таблица 2 user id | device id Важно что атрибуты могут добавляться в будущем. Подкажите правильный подход или нужно что то изменить или добавить? пока ничего неправильного не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 07:40 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
MasterZivsceВажно что атрибуты могут добавляться в будущем . Подкажите правильный подход или нужно что то изменить или добавить? пока ничего неправильного не вижу. Выделил главное. При той структуре, которую предложил ТС, таблица будет расти "вширь", т.е. добавляться новые колонки :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 13:22 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
mad_nazgulПри той структуре, которую предложил ТС, таблица будет расти "вширь", т.е. добавляться новые колонки :-) Она перестанет расти задолго до того, как достигнет предела в 65535 колонок. Просто фантазия на новые атрибуты кончится. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 13:27 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
mad_nazgulMasterZivпропущено... пока ничего неправильного не вижу. Выделил главное. При той структуре, которую предложил ТС, таблица будет расти "вширь", т.е. добавляться новые колонки :-) А, сори, это я пропустил. Ну всё равно вопрос, как часто будут добавляться и кто должен добавлять (программист/ пользователь). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 13:51 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
MasterZivА, сори, это я пропустил. Ну всё равно вопрос, как часто будут добавляться и кто должен добавлять (программист/ пользователь). По идее да. Смотря какие атрибуты и типы в них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:28 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
MasterZivпока ничего неправильного не вижу. Очки наденьте ) топискастер в корне не прав. sceПодкажите правильный подход? Нет sceили нужно что то изменить или добавить? все изменить нужно, но для начала нужно почитать теорию проектирования реляционных БД. Хотя бы основы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 09:36 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
Согласен с Serguei Но перед нормализацией надо сначала провести анализ самой задачи. На текущий момент ошибки явно на лицо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 09:45 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
ScarferNVСогласен с Serguei Но перед нормализацией надо сначала провести анализ самой задачи. На текущий момент ошибки явно на лицо. Ну так перечислите. Если EAV не делать, то там всё ОК. Если вы думаете, что (attr1 | attr2 | attr3) -- это массив атрибутов, и нарушение 1НФ, то возможно вы ошибаетесь, потому что это могут быть просто названия разных атрибутов (разных по смыслу, с разными типами данных и т.п.) ТС как бы на это намекнул, перечислив их (размер, вес, цена). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 11:17 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
sce1. Есть список устройств, у каждого устройства есть свои атрибуты (размер, вес, цена). Все устройства имеют одинаковый (единый) перечень атрибутов? Или могут быть атрибуты, которые не заполняются для каких-либо устройств? Или специфичные устройства, имеющие особые атрибуты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 11:32 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
MasterZivНу так перечислите. Если EAV не делать, то там всё ОК. Если вы думаете, что (attr1 | attr2 | attr3) -- это массив атрибутов, и нарушение 1НФ, то возможно вы ошибаетесь, потому что это могут быть просто названия разных атрибутов (разных по смыслу, с разными типами данных и т.п.) ТС как бы на это намекнул, перечислив их (размер, вес, цена). Связь между пользователем и устройством. У пользователя может быть много устройств. Соответственно таблицы автора не соответствуют этой связи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 11:35 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
ScarferNVСоответственно таблицы автора не соответствуют этой связи. Хм. С чего бы это? Таблица 2 как раз выражает эту связь. Нигде не сказано, что в базе будут только эти две таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 12:38 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
ScarferNVMasterZivНу так перечислите. Если EAV не делать, то там всё ОК. Если вы думаете, что (attr1 | attr2 | attr3) -- это массив атрибутов, и нарушение 1НФ, то возможно вы ошибаетесь, потому что это могут быть просто названия разных атрибутов (разных по смыслу, с разными типами данных и т.п.) ТС как бы на это намекнул, перечислив их (размер, вес, цена). Связь между пользователем и устройством. У пользователя может быть много устройств. Соответственно таблицы автора не соответствуют этой связи. Постановка задачи: авторЕсть список клиентов который использует одно из устройств . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 12:53 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
sce, На мой взгляд, таблиц должно быть больше: 1.Таблица атрибутов T_ATTR (attr_id, Code, Name ) 2.Таблица устройств T_DEVICES (device id, Code, Name) 3.Таблица хранения атрибутов с привязкой к устройству T_DEVICES_ATTR(device_id,attr_id, attr_val ) 4. Таблица пользователей T_USERS( user_id, ....) 5. Таблица устройств по пользователям T_USERS_DEV(user_id, device_id, quantity ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 13:02 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
Mikle83Хм. С чего бы это? Таблица 2 как раз выражает эту связь. Нигде не сказано, что в базе будут только эти две таблицы. Как же Автор сам сказал: Код: xml 1. 2. 3. 4. 5. 6. 7. Таблица " отображает связь 1:1 Код: xml 1. Это как раз и есть вторая таблица, по мнению автора. Если это так, то такая задача не имеет будущего. А что если бизнес в дальнейшем дополнит задачу? Логичнее предположить, что клиент захочет использовать еще одно устройство или больше. Что как раз и вероятнее. Поэтому две таблицы автора с этой задачей не справятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 13:08 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
ScarferNV, а почему 2-я таблица не может представлять собой связь n:m? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 15:42 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
G.u.e.s.tScarferNV, а почему 2-я таблица не может представлять собой связь n:m? Не вижу смысла здесь городить велосипед, когда можно свободно нормализировать до 3НФ, которая в будущем позволит избежать избыточности и целостности данных. Повторюсь, что задача здесь поставлена в узких рамках. А если представить, что в будущем бизнес захочет приписать атрибуты к пользователю? 3НФ без всяких велосипедов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 20:58 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
Чтобы было более менее понятно, задача такая: Есть страница на которую переходит пользователь, приложение определяет атрибуты устройства с которого зашел юзер на страницу и сохраняет их в БД. Так же сам юзер может получить из БД свои данные по его id. По сути все ясно, что вроде должно быть 2 таблицы, но после комментов ничего не ясно:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 02:32 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
А еще дополню что атрибуты для каждого юзера заполяютя обязательно. Те не будет такой ситуации когда у одного юзера 10 атрибутов а у другого 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 02:34 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
sceЧтобы было более менее понятно, задача такая: Есть страница на которую переходит пользователь, приложение определяет атрибуты устройства с которого зашел юзер на страницу и сохраняет их в БД. Так же сам юзер может получить из БД свои данные по его id. По сути все ясно, что вроде должно быть 2 таблицы, но после комментов ничего не ясно:) Вторую таблицу тогда убирай. А в первую добавь внешний ключ на таблицу юзеров, которая уже имеется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 10:57 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
Хотя тут может быть и связь М:М. Какие атрибуты считываются с устройства? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 11:03 |
|
||
|
Проста БД
|
|||
|---|---|---|---|
|
#18+
Атрибуты по типу таких: размер экрана, операционная система, версия флеш плеера и тд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 20:20 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38921816&tid=1540592]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 278ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...