|
|
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток! Я новичок в разработке БД. Столкнулся с таким вопросом: как правильно организовать структуру БД с точки зрения нормализации, если мне необходимо вносить информацию о похожих в целом типах вещей (почти все атрибуты одинаковые), но у некоторых типов есть такие атрибуты, которых нет у остальных. Где и как хранить такие атрибуты? Выносить все нетипичные атрибуты в отдельную сущность (тип атрибута, ключ к родителю, значение) или как-то иначе? Например, такая ситуация: Провайдер предоставляет услуги связи разным корпоративным клиентам. Есть сущность для точек подключения включающая наименование, имя клиента, адрес предоставления услуги, дату инсталляции, и т.д. Но что делать, если у одного клиента есть доп. атрибуты филиал и бизнес-территория (которые, разумеется, относятся только к данному клиенту)? Куда эти атрибуты девать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 17:15:13 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Pim.что делать, если у одного клиента есть доп. атрибуты филиал и бизнес-территория (которые, разумеется, относятся только к данному клиенту)? Куда эти атрибуты девать? "С точки зрения нормализации" эти атрибуты ничем не хуже остальных. Только они NULLable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 17:22:38 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Akina"С точки зрения нормализации" эти атрибуты ничем не хуже остальных. Только они NULLable. Так точно не пойдет, потому что у каждого клиента наберется по паре тройке нетипичных атрибутов, что в итоге приведет к огромному количеству NULLable полей. На сколько я понимаю, в таком случае 3НФ будет нарушен, а я стремлюсь хотя бы к нему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 17:33:53 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Pim.адрес предоставления услугиА вот адресов предоставления услуги у корпоративных клиентов часто бывает более одного. Поэтому, имхо, стоит их вынести в отдельную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 17:34:36 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
miksoftPim.адрес предоставления услугиА вот адресов предоставления услуги у корпоративных клиентов часто бывает более одного. Поэтому, имхо, стоит их вынести в отдельную таблицу. Это понятно. Приведенный пример касается только озвученного ранее вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 17:43:27 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Ну вытаскивайте их в отдельную EAV-таблицу. Или таблицы (по типу данных). Вот только накушаетесь потом с этой структурой... Либо делайте отдельное BLOB-поле и складывайте туда сериализованные нетипичные атрибуты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 17:49:12 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
AkinaЛибо делайте отдельное BLOB-поле и складывайте туда сериализованные нетипичные атрибуты. Не могли бы прокомментировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 17:54:12 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Pim.AkinaЛибо делайте отдельное BLOB-поле и складывайте туда сериализованные нетипичные атрибуты. Не могли бы прокомментировать?Писать туда строку, например, вида 'param1=123¶m2=abc'. Или структуру ini-файла. Или XML. Вариантов сериализации множество. А то вот еще JSON нынче модно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 18:00:04 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Что комментировать-то? рассказать, что за тип данных такой - BLOB? или как в гугле найти слово "сериализация"? или помочь выбрать между XML, JSON, SOAP и прочими? Поточнее сформулируйте свою хотелку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 18:00:24 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
AkinaЧто комментировать-то? рассказать, что за тип данных такой - BLOB? или как в гугле найти слово "сериализация"? или помочь выбрать между XML, JSON, SOAP и прочими? Поточнее сформулируйте свою хотелку... Согласен. Хотелось бы услышать мнения, какой вид сериализации наиболее прост в реализации и в понимании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 18:05:15 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
А это сильно зависит от того, какие операции будут выполняться с сериализованными данными и какими программными средствами строится клиентская часть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 18:07:31 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Akina, Это веб-приложение, пока на PHP (возможно, в будущем перейду на ASP + mssql). В основном операции на чтение, на запись значительно реже. Вообще, я так-то сталкивался с xml-сериализацией, но в суть вопроса особо не вдавался, просто научился строить запросы и все. Еще возникает вопрос масштабировния. Что с этой стороны лучше: EAV или сериализация? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 18:17:01 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Pim.В основном операции на чтение, на запись значительно реже.Это никого не интересует. Вопрос в том, будут ли по этим атрибутам выполняться отбор, сортировка, связывание и пр., или они используются исключительно для вывода. Pim.я так-то сталкивался с xml-сериализацией, но в суть вопроса особо не вдавался, просто научился строить запросы и все. Судя по фразе, XML там присутствовал, а вот сериализация - нет. Pim.возникает вопрос масштабировния. Что с этой стороны лучше: EAV или сериализация? Не вижу связи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 18:29:28 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
AkinaВопрос в том, будут ли по этим атрибутам выполняться отбор, сортировка, связывание и пр., или они используются исключительно для вывода. Понял. По этим атрибутам будут выполняться отбор, сортировка и самое главное связывание. Отсюда как раз вопрос, как это делать? AkinaСудя по фразе, XML там присутствовал, а вот сериализация - нет. Вы абсолютно правы)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 18:40:33 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Pim.По этим атрибутам будут выполняться отбор, сортировка и самое главное связывание. Значит, сериализация отпадает. Пробуйте EAV. Но геморрою будет немеряно. А самое главное - в запросе неминуемо придётся мультисвязыванием с основной таблицей приводить данные к тому виду, о котором я говорил выше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2016, 21:29:27 |
|
||
|
Правильная организация структуры БД
|
|||
|---|---|---|---|
|
#18+
Pim.Всем доброго времени суток! Я новичок в разработке БД. Столкнулся с таким вопросом: как правильно организовать структуру БД с точки зрения нормализации, если мне необходимо вносить информацию о похожих в целом типах вещей (почти все атрибуты одинаковые), но у некоторых типов есть такие атрибуты, которых нет у остальных. Где и как хранить такие атрибуты? Выносить все нетипичные атрибуты в отдельную сущность (тип атрибута, ключ к родителю, значение) или как-то иначе? Например, такая ситуация: Провайдер предоставляет услуги связи разным корпоративным клиентам. Есть сущность для точек подключения включающая наименование, имя клиента, адрес предоставления услуги, дату инсталляции, и т.д. Но что делать, если у одного клиента есть доп. атрибуты филиал и бизнес-территория (которые, разумеется, относятся только к данному клиенту)? Куда эти атрибуты девать? Читай про наследование, есть 5 типов реализации, читать лучше всего в книге или документации по Hibernate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2016, 11:55:29 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1832282]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 494ms |

| 0 / 0 |
