Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проста БД / 25 сообщений из 25, страница 1 из 1
30.03.2015, 23:19
    #38921734
sce
sce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
Подскажите по проектированию простой БД

1. Есть список устройств, у каждого устройства есть свои атрибуты (размер, вес, цена).
2. Есть список клиентов который использует одно из устройств.

Список устройств может пополняться.
Также для каждого клиента надо будет получать его устройство с атрибутами.

Как правильно сделать такую простую архитектуру?


Я пока вижу 2 таблицы:

Таблица 1
device id | attr1 | attr2 | attr3

Таблица 2
user id | device id


Важно что атрибуты могут добавляться в будущем.
Подкажите правильный подход или нужно что то изменить или добавить?
...
Рейтинг: 0 / 0
31.03.2015, 07:04
    #38921812
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
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
...
Рейтинг: 0 / 0
31.03.2015, 07:35
    #38921816
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
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

не туда запилил, здесь уже все нормализовано.
...
Рейтинг: 0 / 0
31.03.2015, 07:40
    #38921819
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
sceПодскажите по проектированию простой БД

1. Есть список устройств, у каждого устройства есть свои атрибуты (размер, вес, цена).
2. Есть список клиентов который использует одно из устройств.

Список устройств может пополняться.
Также для каждого клиента надо будет получать его устройство с атрибутами.

Как правильно сделать такую простую архитектуру?


Я пока вижу 2 таблицы:

Таблица 1
device id | attr1 | attr2 | attr3

Таблица 2
user id | device id


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

пока ничего неправильного не вижу.
...
Рейтинг: 0 / 0
31.03.2015, 13:22
    #38922351
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
MasterZivsceВажно что атрибуты могут добавляться в будущем .
Подкажите правильный подход или нужно что то изменить или добавить?

пока ничего неправильного не вижу.

Выделил главное.
При той структуре, которую предложил ТС, таблица будет расти "вширь", т.е. добавляться новые колонки :-)
...
Рейтинг: 0 / 0
31.03.2015, 13:27
    #38922363
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
mad_nazgulПри той структуре, которую предложил ТС, таблица будет расти "вширь",
т.е. добавляться новые колонки :-)
Она перестанет расти задолго до того, как достигнет предела в 65535 колонок. Просто
фантазия на новые атрибуты кончится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
31.03.2015, 13:51
    #38922426
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
mad_nazgulMasterZivпропущено...


пока ничего неправильного не вижу.

Выделил главное.
При той структуре, которую предложил ТС, таблица будет расти "вширь", т.е. добавляться новые колонки :-)

А, сори, это я пропустил.

Ну всё равно вопрос, как часто будут добавляться и кто должен добавлять (программист/ пользователь).
...
Рейтинг: 0 / 0
31.03.2015, 15:28
    #38922680
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
MasterZivА, сори, это я пропустил.

Ну всё равно вопрос, как часто будут добавляться и кто должен добавлять (программист/ пользователь).

По идее да.
Смотря какие атрибуты и типы в них.
...
Рейтинг: 0 / 0
01.04.2015, 09:36
    #38923356
Serguei
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
MasterZivпока ничего неправильного не вижу.

Очки наденьте ) топискастер в корне не прав.


sceПодкажите правильный подход?
Нет
sceили нужно что то изменить или добавить?
все изменить нужно, но для начала нужно почитать теорию проектирования реляционных БД. Хотя бы основы.
...
Рейтинг: 0 / 0
01.04.2015, 09:45
    #38923368
ScarferNV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
Согласен с Serguei
Но перед нормализацией надо сначала провести анализ самой задачи. На текущий момент ошибки явно на лицо.
...
Рейтинг: 0 / 0
01.04.2015, 11:17
    #38923550
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
ScarferNVСогласен с Serguei
Но перед нормализацией надо сначала провести анализ самой задачи. На текущий момент ошибки явно на лицо.

Ну так перечислите.

Если EAV не делать, то там всё ОК.

Если вы думаете, что (attr1 | attr2 | attr3) -- это массив атрибутов, и нарушение 1НФ, то возможно вы ошибаетесь,
потому что это могут быть просто названия разных атрибутов (разных по смыслу, с разными типами данных и т.п.)
ТС как бы на это намекнул, перечислив их (размер, вес, цена).
...
Рейтинг: 0 / 0
01.04.2015, 11:32
    #38923582
Mikle83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
sce1. Есть список устройств, у каждого устройства есть свои атрибуты (размер, вес, цена).

Все устройства имеют одинаковый (единый) перечень атрибутов?
Или могут быть атрибуты, которые не заполняются для каких-либо устройств? Или специфичные устройства, имеющие особые атрибуты?
...
Рейтинг: 0 / 0
01.04.2015, 11:35
    #38923590
ScarferNV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
MasterZivНу так перечислите.

Если EAV не делать, то там всё ОК.

Если вы думаете, что (attr1 | attr2 | attr3) -- это массив атрибутов, и нарушение 1НФ, то возможно вы ошибаетесь,
потому что это могут быть просто названия разных атрибутов (разных по смыслу, с разными типами данных и т.п.)
ТС как бы на это намекнул, перечислив их (размер, вес, цена).

Связь между пользователем и устройством. У пользователя может быть много устройств.
Соответственно таблицы автора не соответствуют этой связи.
...
Рейтинг: 0 / 0
01.04.2015, 12:38
    #38923703
Mikle83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
ScarferNVСоответственно таблицы автора не соответствуют этой связи.
Хм. С чего бы это? Таблица 2 как раз выражает эту связь.
Нигде не сказано, что в базе будут только эти две таблицы.
...
Рейтинг: 0 / 0
01.04.2015, 12:53
    #38923727
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
ScarferNVMasterZivНу так перечислите.

Если EAV не делать, то там всё ОК.

Если вы думаете, что (attr1 | attr2 | attr3) -- это массив атрибутов, и нарушение 1НФ, то возможно вы ошибаетесь,
потому что это могут быть просто названия разных атрибутов (разных по смыслу, с разными типами данных и т.п.)
ТС как бы на это намекнул, перечислив их (размер, вес, цена).

Связь между пользователем и устройством. У пользователя может быть много устройств.
Соответственно таблицы автора не соответствуют этой связи.

Постановка задачи:
авторЕсть список клиентов который использует одно из устройств .
...
Рейтинг: 0 / 0
01.04.2015, 13:02
    #38923741
452SQL77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
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 )
...
Рейтинг: 0 / 0
01.04.2015, 13:08
    #38923748
ScarferNV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
Mikle83Хм. С чего бы это? Таблица 2 как раз выражает эту связь.
Нигде не сказано, что в базе будут только эти две таблицы.

Как же Автор сам сказал:

Код: xml
1.
2.
3.
4.
5.
6.
7.
Я пока вижу 2 таблицы:

Таблица 1
device id | attr1 | attr2 | attr3

Таблица 2
user id | device id



Таблица " отображает связь 1:1

Код: xml
1.
2. Есть список клиентов который использует одно из устройств. 

Это как раз и есть вторая таблица, по мнению автора.

Если это так, то такая задача не имеет будущего. А что если бизнес в дальнейшем дополнит задачу?
Логичнее предположить, что клиент захочет использовать еще одно устройство или больше. Что как раз и вероятнее.
Поэтому две таблицы автора с этой задачей не справятся.
...
Рейтинг: 0 / 0
01.04.2015, 15:42
    #38923979
G.u.e.s.t
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
ScarferNV,

а почему 2-я таблица не может представлять собой связь n:m?
...
Рейтинг: 0 / 0
01.04.2015, 20:58
    #38924268
ScarferNV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
G.u.e.s.tScarferNV,

а почему 2-я таблица не может представлять собой связь n:m?

Не вижу смысла здесь городить велосипед, когда можно свободно нормализировать до 3НФ, которая в будущем позволит избежать избыточности и целостности данных.
Повторюсь, что задача здесь поставлена в узких рамках.
А если представить, что в будущем бизнес захочет приписать атрибуты к пользователю?

3НФ без всяких велосипедов.
...
Рейтинг: 0 / 0
02.04.2015, 02:32
    #38924375
sce
sce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
Чтобы было более менее понятно, задача такая:
Есть страница на которую переходит пользователь, приложение определяет атрибуты устройства с которого зашел юзер на страницу и сохраняет их в БД.
Так же сам юзер может получить из БД свои данные по его id.

По сути все ясно, что вроде должно быть 2 таблицы, но после комментов ничего не ясно:)
...
Рейтинг: 0 / 0
02.04.2015, 02:34
    #38924376
sce
sce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
А еще дополню что атрибуты для каждого юзера заполяютя обязательно. Те не будет такой ситуации когда у одного юзера 10 атрибутов а у другого 6.
...
Рейтинг: 0 / 0
02.04.2015, 10:57
    #38924636
ScarferNV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
sceЧтобы было более менее понятно, задача такая:
Есть страница на которую переходит пользователь, приложение определяет атрибуты устройства с которого зашел юзер на страницу и сохраняет их в БД.
Так же сам юзер может получить из БД свои данные по его id.

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

Вторую таблицу тогда убирай. А в первую добавь внешний ключ на таблицу юзеров, которая уже имеется.
...
Рейтинг: 0 / 0
02.04.2015, 11:03
    #38924647
ScarferNV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
Хотя тут может быть и связь М:М.
Какие атрибуты считываются с устройства?
...
Рейтинг: 0 / 0
02.04.2015, 20:20
    #38925609
sce
sce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
Атрибуты по типу таких: размер экрана, операционная система, версия флеш плеера и тд
...
Рейтинг: 0 / 0
03.04.2015, 09:14
    #38925865
ScarferNV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проста БД
sceАтрибуты по типу таких: размер экрана, операционная система, версия флеш плеера и тд
Тогда одной таблицы №1 с добавлением поля юзера достаточно.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проста БД / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]