Организация дополнительных [закрытых] методов

Это потому, что первичный ключ в PLAYER является составным, поэтому внешний ключ, который на него указывает, также должен быть составным.

Моя версия GOAL - обратите внимание на добавление GPCid и его включение во внешний ключ:

CREATE TABLE GOAL( 
GPCid varchar(2) not null,
GPno int NOT NULL, 
GMinute varchar(6) NOT NULL, 
GoalType char NOT NULL, 
GGid varchar(2) NOT NULL, 
PRIMARY KEY(GPno, GGid, GMinute) ,
FOREIGN KEY (GPCid,GPno) REFERENCES PLAYER(PCid,Pno),
FOREIGN KEY (GGid) REFERENCES GAME(Gid)
); 

И аналогично для CARD и т. Д.

19
задан Jared 18 September 2008 в 20:41
поделиться

2 ответа

Я организую дополнительные методы с помощью комбинации пространства имен и имени класса, и это подобно способу, которым Вы описываете в вопросе.

Обычно у меня есть своего рода "предварительное предвыборное собрание для выдвижения кандидатов" в моем решении, которое предоставляет большинству общей функциональности (как дополнительные методы). Мы назовем этот блок "Платформой" ради обсуждения.

В рамках блока Платформы, я пытаюсь подражать пространствам имен вещей, для которых у меня есть дополнительные методы. Например, если я расширяю Систему. Сеть. HttpApplication, у меня была бы "Платформа. Сеть" пространство имен. Классы как "Строка" и "Объект", находящийся в "Системном" пространстве имен, переводят в корневое пространство имен "Платформы" в том блоке.

Наконец, именование продвигается строки, которые Вы указали в вопросе - имя типа с "Расширениями" как суффикс. Это приводит к иерархии классов как это:

  • Платформа (пространство имен)
    • Платформа. ObjectExtensions (класс)
    • Платформа. StringExtensions (класс)
    • Платформа. Сеть (пространство имен) <ул.> <литий> Платформа. Сеть. HttpApplicationExtensions (класс)

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

13
ответ дан 30 November 2019 в 05:04
поделиться

Существует два способа, которыми я организую дополнительные методы, которые я использую,

1), Если расширение характерно для проекта, я продолжаю работать, затем я сохраняю его в том же проекте/блоке, но в его собственном пространстве имен.

2), Если расширение является видом так, чтобы я мог или использовал его в других проектах также, затем я разделяю их в общем блоке для расширений.

самая важная вещь иметь в виду, каков объем, в котором я буду использовать их? Организация их не трудна, если я просто имею это в виду.

3
ответ дан 30 November 2019 в 05:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: