powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сущность и наборы аттрибутов
25 сообщений из 27, страница 1 из 2
Сущность и наборы аттрибутов
    #38107694
Belyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть сущность, она может иметь различные группы атрибутов. Например, есть сущность "объявление", оно может иметь наборы атрибутов как для "авто", так и для "недвижимости". Создать таблицу атрибутов с именем и значением атрибута не выход, так как значение может быть как int, так и varchar. Как лучше это сделать?
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38107748
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelyyКак лучше это сделать?
Сущность "объявление" - отдельно, сущность "объявление о недвижимости" - отдельно, и
"объявление об авто" - опять же отдельно. Возможно с наследованием если СУБД позволяет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38108287
Belyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Связь будет 1-1 ?
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38108330
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelyyЕсть сущность, она может иметь различные группы атрибутов. Например, есть сущность "объявление", оно может иметь наборы атрибутов как для "авто", так и для "недвижимости". Создать таблицу атрибутов с именем и значением атрибута не выход, так как значение может быть как int, так и varchar...
В этой таблице создают несколько колонок - под каждый возможный тип.
Другое распространенное решение - своя таблица для каждого типа.
См., например, drupal.
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38108674
Belyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давайте, на примере бд для доски объявлений.
Объявление может быть по продаже авто, квартиры, телефона.
Можно создать 1 таблицу, Объявление, с полями для всех 3 видов объявлений ( тип кузова, количество комнат, память ). Но если таких атрибутов будет по 10 для каждого вида объявления ( так же около 10 ), получается примерно 100 столбцов в таблице, в каждой строке которой, будет 90 из 100 пустых. Вот вообщем и сама проблема!
СУБД MySQL, вариант 1:
для каждого вида объявления создать собственную таблицу ( авто, квартира, телефон ) и просто создать таблицу - объявление.
Связь 1 к 1.
Таблица "Объявление": create table ad( id int not null auto_increment, date datetime, primary key(id))
Таблица "Авто": create table auto( id int not null, type int not null, primary key(id), foreign key(id) references ad(id))

Жду комментарии и ваших вариантов!
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38108676
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelyyЕсть сущность, она может иметь различные группы атрибутов. Например, есть сущность "объявление", оно может иметь наборы атрибутов как для "авто", так и для "недвижимости". Создать таблицу атрибутов с именем и значением атрибута не выход, так как значение может быть как int, так и varchar. Как лучше это сделать?

Надо применять отношение подкатегории, оно же "наследование".
N таблиц, связанных на каждом уровне наследования связью 1-0..1.
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38108680
Belyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно на этом примере?
BelyyДавайте, на примере бд для доски объявлений.
Объявление может быть по продаже авто, квартиры, телефона.
Можно создать 1 таблицу, Объявление, с полями для всех 3 видов объявлений ( тип кузова, количество комнат, память ). Но если таких атрибутов будет по 10 для каждого вида объявления ( так же около 10 ), получается примерно 100 столбцов в таблице, в каждой строке которой, будет 90 из 100 пустых. Вот вообщем и сама проблема!
СУБД MySQL, вариант 1:
для каждого вида объявления создать собственную таблицу ( авто, квартира, телефон ) и просто создать таблицу - объявление.
Связь 1 к 1.
Таблица "Объявление": create table ad( id int not null auto_increment, date datetime, primary key(id))
Таблица "Авто": create table auto( id int not null, type int not null, primary key(id), foreign key(id) references ad(id))
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38109471
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belyyможно на этом примере?
Я за разные таблички... Т.к. описание объектов могут сильно разниться.
Вот пример такого

ОбъявленияИДДатаВремядр.поля
КвартирыИДИД объявленияАдресПлощадьдр.поля
ТелефоныИДИД объявленияИМЕЙИзготовительМаркадр.поля
АвтотранспортИДИД объявленияМаркаМодельВИНГод выпускаЦветдр.поля
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38109501
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я за разные таблички... Т.к. описание объектов могут сильно разниться. Проблема в том, что добавление нового атрибута потребует изменение структуры таблиц. Что не есть хорошо (например для репликации).

2ТС: Покурите на тему EAV.
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38109509
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVПроблема в том, что добавление нового атрибута потребует изменение структуры таблиц.
Это не проблема.

LSVЧто не есть хорошо (например для репликации).
А что, у какой-то кривой репликации это вызывает вопросы?
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38109527
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVПроблема в том, что добавление нового атрибута потребует изменение структуры таблиц. Что не есть хорошо (например для репликации).
Тогда мутить дальше...

ОбъявленияИДДатаВремядр.поля
Типы объявленийИДНазвание
СвойстваИДНазваниеТип значения
Наборы свойств для типов объявленийИДИД Типа объявленияИД Свойства
Останется только сделать таблички для каждого типа значений и привязать конкретное значение к конкретному объявлению, типу и свойству...
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38109531
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл свойство дописать...

ОбъявленияИДДатаВремяИД Типа объявлениядр.поля
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38109786
Belyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaBelyyможно на этом примере?
Я за разные таблички... Т.к. описание объектов могут сильно разниться.
Вот пример такого

ОбъявленияИДДатаВремядр.поля
КвартирыИДИД объявленияАдресПлощадьдр.поля
ТелефоныИДИД объявленияИМЕЙИзготовительМаркадр.поля
АвтотранспортИДИД объявленияМаркаМодельВИНГод выпускаЦветдр.поля
но здесь же связь 1 ко многим
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38109891
Belyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если у меня будет макс. 5 видов объявлений и около 10 атрибутов на каждый вид. С точки зрение скорости обработки, какой метод лучше: 1) для каждого вида своя таблица или 2) отдельная таблица для свойств ?
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38109898
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belyyно здесь же связь 1 ко многим
Где ты её увидел?
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38109900
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelyyС точки зрение скорости обработки, какой метод лучше
Такой, в каком будет обрабатываться меньше записей...
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38109920
Belyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaBelyyно здесь же связь 1 ко многим
Где ты её увидел?
в нескольких квартир может быть один и тот же ид объявления
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38109936
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelyyЕсли у меня будет макс. 5 видов объявлений и около 10 атрибутов на каждый вид. С точки зрение скорости обработки, какой метод лучше: 1) для каждого вида своя таблица или 2) отдельная таблица для свойств ?
Ваш вопрос нужно перенести в раздел по соответствующей системе обработки и хранение данных. Этот раздел не по проектированию реляционных баз данных, а по проектированию баз данных. Поэтому, лучше 3) Одна таблица для объявлений:)
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38110242
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belyyв нескольких квартир может быть один и тот же ид объявления
В таком случае это будут два разных объявления...
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38110290
Настя Рим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А такой вариант не прокатит?
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38110368
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настя Рим,

а зачем у Вас разделены таблицы "Строчные поля" и "Численные поля"? Структура описаний-то этих полей, скорее всего, одинакова. Вот таблицу "Поля"(то бишь значения) можно было бы разделить на 2, а описания-то зачем?
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38110418
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerА что, у какой-то кривой репликации это вызывает вопросы?Репликация имелось ввиду перенос данных из одного источника в другой (самодельный, штатный, сторонний, встроенный и пр.). И при смене структуры всегда могут возникнуть потенциальные проблемы.
И не надо говорить, что никаких проблем нет.
Вопросы обвязки кодом новых полей/таблиц пока опустим.
Даже штатная репликация любого сервера имеет ряд проблем и неудобств.

зы: Даже элементарное почтовое уведомление о успешном бекапе иногда (неск. раз в год, MSSQL) не приходит. Не приходит и всё.... :) Перегрузил агента, снова нормально ходит... (какие-то загадочные глюки в AD)
А репликация в сто раз сложнее бекапа. А переменная структура еще один виток усложнения.
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38110519
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVИ при смене структуры всегда могут возникнуть потенциальные проблемы. И не надо говорить, что никаких проблем нет.
Изменение структуры - это штатная и регулярная ситуация в ИС. И если у инструмента в этом случае прогнозируются проблемы (более чем "сугубо потенциальные") - это, назовём так, повод задуматься.

LSVА репликация в сто раз сложнее бекапа. А переменная структура еще один виток усложнения.
Да ни фига это не виток. Вы так пишете, словно написать код для "десяти таблиц, каждая с постоянной структурой" проще и правильнее, нежели для переменного числа таблиц с переменной структурой. Скажем, могу рассказать, как ведёт себя мой репликатор. Во-первых, он принимает данные согласно приехавшей структуре. То есть добавили новое поле в источник и приёмник - оно автоматом подхватилось как только приехала первая запись с этим новым полем. Во-вторых, у него есть вызов "притормози ненадолго", который откладывает приём данных на десять минут - это для того, чтобы спокойно и безопасно обновить структуру данных на сервере. В-третьих, обнаружив ошибки, характерные для расползшихся структур (в источнике поле добавили, в приёмнике забыли, например), он опять же тормозит приём на десять минут и шлёт оповещение. В самом худшем случае (проблема не уходит, оповещение не проходит) данные копятся во входном буфере, и в программе мониторинга видно это нарастание (разрастается входной буфер, отставание сервера по данным уходит в "больше пятнадцати минут", то есть в область красных величин).
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38110527
Настя Рим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин, предполагалось, что таблица "строчные поля" имеет поле значения типа varchar, а таблица "численные поля" имеет поле значения типа int.
Непонятно, как этого эффекта с разными типами полей можно добиться, если разбить таблицу "поля".
Если это возможно, и вам не сложно - нарисуйте пожалуйста.
...
Рейтинг: 0 / 0
Сущность и наборы аттрибутов
    #38110546
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настя РимКот Матроскин, предполагалось, что таблица "строчные поля" имеет поле значения типа varchar, а таблица "численные поля" имеет поле значения типа int.
Непонятно, как этого эффекта с разными типами полей можно добиться, если разбить таблицу "поля".
Если это возможно, и вам не сложно - нарисуйте пожалуйста.

Я так понял, что значения полей у Вас лежат в таблице "Поля", в "числовых/строчных полях" - только описания. Нет?

типа
"Числовые поля"
ID Название
1 Метраж
2. Цена


"Поля"
Обьявление Поле Значение
1 1 67,5
1 2 50000


Нет, не так?
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сущность и наборы аттрибутов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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