Как правильно разработать систему комментариев? - PullRequest
0 голосов
/ 20 декабря 2018

Я создаю сайт с фотографиями, постами, альбомами и т. Д. *

Каждый может иметь свой комментарий.

Единственная реальная разница между этими комментариями заключается в том, что один будет комментарием к записи, другой будет комментарием к альбому, другим будет комментарий к изображению и т. Д. *

Если этоЕдинственная разница между этими комментариями, тогда стоит ли иметь подклассы, такие как PostComment, AlbumComment, PictureComment, которые все наследуются от Comment?Все они имеют одинаковые поля, кроме одного поля, которое отличает их друг от друга.

Это перебор?

1 Ответ

0 голосов
/ 20 декабря 2018

Я бы не сказал, что есть действительно «правильный» способ сделать это, так как это зависит от вашего конкретного варианта использования.Лично я бы не сказал, что подкласс для каждого PostComment, PictureComment и т. Д. Является излишним, так как каждый из подклассов будет иметь различные поля для основного Comment класса.Таким образом, наследование сделало бы прекрасное решение проблемы, если бы вы выбрали классы;оно ясно обозначает, что является уникальным для каждого подкласса и что распределяется между ними.

Сказав это, я бы, вероятно, вместо этого выбрал бы ассоциацию таблицы базы данных, просто имея таблицу Comments рядом с Pictures и Posts стол.Затем вы можете просто установить столбец type в таблице Comments, который является внешним ключом, сопоставленным с соответствующей таблицей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...