Я строю платформу для ухода за домашними животными B2C. У нас есть два типа предприятий: укрытия и grooming_shops . Оба: < /p>
Поделиться общими полями (имя, адрес, телефон и т. Д.) предприятия.reviews (
id,
target_type ENUM('SHELTER', 'GROOMING_SHOP'),
target_id
)
< /code>
Простые, но без ограничений FK или гарантий целостности. < /p>
Опция 2: Отдельные таблицы сопоставления < /h3>
shelter_reviews (shelter_id, review_id)
grooming_shop_reviews (shop_id, review_id)
< /code>
fk-safe, но структура дублируется и труднее запросить.businesses (id, type ENUM(...), name, address, ...)
shelter_profiles (business_id, ...)
grooming_shop_profiles (business_id, ...)
reviews (business_id FK)
< /code>
чистый, расширяемый, нормализованный-но добавляет соединения и сложность.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... ared-table