Объекты и классы
Модератор: immortal
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Объекты и классы
К сожалению, сам справочник Расположений (таблица locations) плоский. Полностью в нем структуру не построишь.
Но, кроме "логики", есть ли какие-то различия в свойствах или методах у классов Квартира, Гараж, Подвал? Есть ли у них вообще свойства или методы?
Если нет, можно просто в Расположения завести Квартира, Гараж, Подвал, а уже в объектах Rooms конечные помещения (кухня, кладовка, паркоместо) с указанием нужного Расположения.
А в классы объектов, зависящих от помещений (например, датчики), как и говорил Сергей, добавлять свойство LinkedRoom, в котором ссылаться на объект из Rooms (но уже без указания местоположения, чтобы не возникло противоречивости данных).
Но, кроме "логики", есть ли какие-то различия в свойствах или методах у классов Квартира, Гараж, Подвал? Есть ли у них вообще свойства или методы?
Если нет, можно просто в Расположения завести Квартира, Гараж, Подвал, а уже в объектах Rooms конечные помещения (кухня, кладовка, паркоместо) с указанием нужного Расположения.
А в классы объектов, зависящих от помещений (например, датчики), как и говорил Сергей, добавлять свойство LinkedRoom, в котором ссылаться на объект из Rooms (но уже без указания местоположения, чтобы не возникло противоречивости данных).
-
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Благодарил (а): 99 раз
- Поблагодарили: 140 раз
- Контактная информация:
Re: Объекты и классы
Есть квартира. Есть подвал, в котором тоже несколько помещений: кладовка, подвал, холодильник.
А почему бы не наследовать подвал от квартиры, кладовку от подвала, а холодильник от кладовки? Это ведь решает проблему.
А почему бы не наследовать подвал от квартиры, кладовку от подвала, а холодильник от кладовки? Это ведь решает проблему.
-
- Сообщения: 41
- Зарегистрирован: Чт дек 03, 2015 4:19 pm
- Откуда: Калуга
- Благодарил (а): 7 раз
- Поблагодарили: 0
Re: Объекты и классы
Всем спасибо.
Во вложении структура БД МЖД. Пока могу сказать, что в двух разных таблицах locations и objects у нас одни и те же значения Bathroom, Bedroom, Hall, Kinderroom и тд. Хотя мое знакомство с базами достаточно поверхностное и лет 10 я не в теме, но помню , что это неправильно. Пока думаю
Во вложении структура БД МЖД. Пока могу сказать, что в двух разных таблицах locations и objects у нас одни и те же значения Bathroom, Bedroom, Hall, Kinderroom и тд. Хотя мое знакомство с базами достаточно поверхностное и лет 10 я не в теме, но помню , что это неправильно. Пока думаю
- Вложения
-
- База данных МЖД
- База данных.jpg (313.92 КБ) 6361 просмотр
-
- Сообщения: 41
- Зарегистрирован: Чт дек 03, 2015 4:19 pm
- Откуда: Калуга
- Благодарил (а): 7 раз
- Поблагодарили: 0
Re: Объекты и классы
Вдогонку вопрос к знатокам.
посмотрите таблицу pvalues
почему названия отличаются от названия таблиц?
PROPERTY_ID, а таблица называется properties
OBJECT_ID а таблица называется objects
посмотрите таблицу pvalues
почему названия отличаются от названия таблиц?
PROPERTY_ID, а таблица называется properties
OBJECT_ID а таблица называется objects
- Вложения
-
- База данных фрагмент.jpg (100.96 КБ) 6355 просмотров
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Объекты и классы
Сергей и говорил, что в инсталяторе не самая оптимальная структура.Михаил_Калуга писал(а):Всем спасибо.
Во вложении структура БД МЖД. Пока могу сказать, что в двух разных таблицах locations и objects у нас одни и те же значения Bathroom, Bedroom, Hall, Kinderroom и тд. Хотя мое знакомство с базами достаточно поверхностное и лет 10 я не в теме, но помню , что это неправильно. Пока думаю
locations и objects - это разные сущности: Расположения - это то, где кто-то/что-то находится, Объекты - то, с чем можно взаимодействовать.
Но, если есть необходимость расширить функционал Расположений за счет возможностей Объектов, то нет ничего плохого в создании связей 1 к 1 между ними. Избыточностю здесь может быть, разве что, поле Название. Но и эту особенность можно использовать с пользой.
У меня, например, нет в структуре разных локаций, как у Вас (Гараж, Подвал и т.д.), а есть одна Квартира с комнатами. Я бы мог в locations указать только квартиру, но тогда потеряется польза от Расположений вообще.
Потому я в locations храню сущности уровнем ниже - комнаты, так же как и в объектах.
Если Вы про PROPERTY_ID/PROPERTIES, то это соответсвует одной из общепринятых конвенций именования сущностей/атрибутов баз данных.Михаил_Калуга писал(а): посмотрите таблицу pvalues
почему названия отличаются от названия таблиц?
PROPERTY_ID, а таблица называется properties
OBJECT_ID а таблица называется objects
В кратце:
1. Имена таблиц во множесвенном числе
2. Имена полей в единственном числе
3. Ключевое поле - ID
4. Суффикс _ID у полей с внешним ключем.
-
- Сообщения: 41
- Зарегистрирован: Чт дек 03, 2015 4:19 pm
- Откуда: Калуга
- Благодарил (а): 7 раз
- Поблагодарили: 0
Re: Объекты и классы
Я попробовал для наглядности создать связь между таблицами. Одни создались без проблем. А связь с таблицей pvalues не создается (вложение) подумал, что проблема в неточности написания, а потом увидел, что там где связи установились написано аналогично. Попробовал указать варианты при обновлении/удалении связь устанавливать не хочет. Это непринципиально.olehs писал(а): Если Вы про PROPERTY_ID/PROPERTIES,
По поводу местоположения. Вернулись к тому чего я хотел в начале.
Хочу на местоположение взглянуть шире. Т.е. даже просто в квартире может возникнуть ситуация, когда под местоположением могут пониматься предметы из разных классов. Также есть ситуации когда нужно вручную вводить какие то объемы информации и местоположение важно.
Пример:
У меня есть класс продукты (питания)
Есть класс холодильники ( установлены в квартире кухня, коридор и подвал)
Есть ящики для продуктов (назовем так) установлены в квартире кухня и подвале)
При поступлении продуктов и раскладке их по местам хранения я заношу вручную данные в базу данных через панель управления. И здесь логично и удобно выбирать конкретный ящик или холодильник, те я должен выбрать класс холодильники или ящики и выбрать конкретный холодильник или ящик куда положил продукты.
В результате. Когда я захочу свежего пива с воблой, то получу ответ, что свежее пиво в холодильнике в коридоре, а вобла в ящике в подвале.
Еще раз уточню рассматриваем ситуацию периодического ручного ввода объема информации где важно местоположение.
- Вложения
-
- База данных фрагмент 2.jpg (72.66 КБ) 6338 просмотров
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Объекты и классы
Идея понятна, но в виду большой специфичности задачи, я бы либо взялся за написание отельного модуля с нужной структурой таблиц, либо выбрал готовую логистическую прикладуху с возможностью интеграции в МЖД.
-
- Сообщения: 41
- Зарегистрирован: Чт дек 03, 2015 4:19 pm
- Откуда: Калуга
- Благодарил (а): 7 раз
- Поблагодарили: 0
Re: Объекты и классы
А в чем специфичность? Классы есть, объекты есть.
Когда в панели инструментов для объекта выбираем местоположение имеем два пути:
1. Местоположение неважно
2. Местоположение выбрать из класса -> Выбираем класс -> Выбираем конкретный объект. Все
Когда в панели инструментов для объекта выбираем местоположение имеем два пути:
1. Местоположение неважно
2. Местоположение выбрать из класса -> Выбираем класс -> Выбираем конкретный объект. Все
-
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Благодарил (а): 99 раз
- Поблагодарили: 140 раз
- Контактная информация:
Re: Объекты и классы
Приведите пожалуйста пример кода на PHP где вы собираетесь использовать ссылки на объект.Михаил_Калуга писал(а): Местоположение выбрать из класса -> Выбираем класс -> Выбираем конкретный объект. Все
Даже если предположить что укладка в базу произведена - как этим пользоваться? Напишите код.
Еще вопрос: Пиво - это объект?