Насколько семантический Ваша разметка XHTML/CSS?

Вы не можете создать CONSTRAINT для этого, однако, вы можете создать отфильтрованный уникальный индекс:

USE Sandbox;
GO

CREATE TABLE dbo.Student (ID int IDENTITY(1, 1) PRIMARY KEY,
                          FirstName varchar(100),
                          LastName varchar(100),
                          Active bit);


CREATE UNIQUE INDEX UQ_StudentName
    ON Student (FirstName,LastName)
    WHERE Active = 1;
GO

INSERT INTO dbo.Student (FirstName,
                         LastName,
                         Active)
VALUES ('Jane', 'Smith', 1); --Success
GO
INSERT INTO dbo.Student (FirstName,
                         LastName,
                         Active)
VALUES ('Jane', 'Smith', 0); --Success
GO
INSERT INTO dbo.Student (FirstName,
                         LastName,
                         Active)
VALUES ('Jane', 'Smith', 0); --Success
GO
INSERT INTO dbo.Student (FirstName,
                         LastName,
                         Active)
VALUES ('Jane', 'Smith', 1); --Fails;
GO

UPDATE dbo.Student
SET Active = 1
WHERE ID = 2; --Fails;
GO

SELECT *
FROM dbo.Student;
GO

DROP TABLE dbo.Student;

Однако я настоятельно рекомендую против мысли, что имена уникальны. Я (лично) поделился своим именем и датой рождения с другим человеком в нескольких местах моей юности, и компании, которые рассматривали имена (и дату рождения) как уникальные в своих системах, были такой головной болью для нас обоих (там действительно были места, где я (или они) не могли зарегистрироваться без использования сокращенного имени, потому что мы «уже существовали»).

5
задан Kyle West 15 November 2008 в 21:41
поделиться

6 ответов

Почему Вы хотите выровнять текст?

Ответ на вопрос является названием идентификатора или класса, который Вы должны иметь для своего селектора. Вы хотите выровнять его по правому краю, потому что это - цена?

table .price {
  text-align: right
}

Просто спросите себя, почему Вы хотите применить конкретный стиль, и все станут ясными.

Я, вероятно, переусердствовал его, но мой последний проект работы был на достаточно близкие 100% семантическим - что-либо, в чем я нуждался, который не был семантическим (скажите, отделение заполнителя, которого я не мог обойтись без для требования расположения), я добавил динамично использование jQuery.

13
ответ дан 18 December 2019 в 12:02
поделиться

Если Вы хотите плотное соединение между ячейками таблицы и выравниванием, Вы могли бы просто присвоить атрибут style="text-align:right" непосредственно на теге. Нет никакой причины пойти дополнительный уровень абстракции через класс, если Вы не используете его для уровня абстракции так или иначе.

2
ответ дан 18 December 2019 в 12:02
поделиться

Я пытаюсь рассмотреть, почему я хочу столбец, выровненный по правому краю в таблице. Например, если бы столбец содержит суммы валюты затем, я использовал бы стиль, названный валютой вместо right_align.

2
ответ дан 18 December 2019 в 12:02
поделиться

Семантическая разметка является замечательной целью, но в реальном мире, иногда необходимо идти на компромиссы. В некоторых случаях единственный разумный способ сделать что-то состоит в том, чтобы повредить семантику и просто добавить a right_align.

Править: Люди, кажется, неправильно понимают мою точку в этом. Необходимо использовать семантическую разметку, если это возможно. Однако существуют случаи, где это действительно - просто стилистический выбор и нет ничего свойственного к данным, что можно использовать, чтобы описать или классифицировать его. Это типично верно с большими разделами табличных данных, особенно если это динамично сгенерировано.

У меня были случаи, где клиенты хотят смочь динамично управлять тем, какие столбцы появляются в сетке данных. Нет никакого способа знать заранее, какие данные они собираются принять решение показать. Если они хотят способ центрировать или выровнять по правому краю динамично сгенерированный столбец, лучше иметь в наличии центр и классы выравнивания по правому краю для них для использования, чем иметь их липкий style атрибуты везде.

1
ответ дан 18 December 2019 в 12:02
поделиться

100%-я семантическая разметка является глупой целью. Ваш графический дизайнер скажет, "Давайте выровняем по правому краю это", и причина будет, "потому что это выглядит хорошим тот путь". Что Вы, как предполагается, делаете, добавьте класс "looksgoodthatway" отделению? Просто выровняйте по правому краю его и продолжите Вашу жизнь!:)

0
ответ дан 18 December 2019 в 12:02
поделиться

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

Я использую следующую нотацию

matcher,¶
matcher¶
{¶
··attribute:·property;¶
}¶

Почему Вы спрашиваете? Это решает много проблем с коллизиями, поскольку это сокращает количество мест, 2 несвязанных изменения могут произойти в 2 различных местах сразу (который вызывает коллизию), и когда коллизия действительно происходит, его намного более легкое для наблюдения то, что вызвало его и выбрало правильное решение.

Это вызвано тем, что РАЗНОСТЬ SCM является строкой, ориентированной, и если у Вас есть все свое содержание на 1 строке, Вы получаете 2 варианта, поливаете из шланга один полный набор или поливаете из шланга другой.

Кроме того, тот конкретный стиль, к которому я нахожу, если придерживается, помогает написать код проверки линта, который обнаруживает ошибки в Вашем CSS.

Для insance, пятно опечатки:

matcher 
matcher, 
{
    attribute property 
  attribute
}

В этом случае код, который просто проверяет на пробел и соответствие разделителя также, обнаруживает ошибки кодирования!.

-3
ответ дан 18 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

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