Re: Constraints for grouping
| От | Richard Broersma Jr |
|---|---|
| Тема | Re: Constraints for grouping |
| Дата | |
| Msg-id | 602367.49974.qm@web31801.mail.mud.yahoo.com обсуждение |
| Ответ на | Constraints for grouping (PostgreSQL Admin <postgres@productivitymedia.com>) |
| Ответы |
Re: Constraints for grouping
|
| Список | pgsql-sql |
--- PostgreSQL Admin <postgres@productivitymedia.com> wrote: > I have a question that I've thought in my head about using triggers, but > I figure to ask people that do SQL more than I. So, I have a table that > I want two columns. > > (1) A featured column which is for only 1 row, once it switched to > another row than all other rows must be false > > title | author_id | categories | featured > --------------------------------+-----------+------+----- > Thierry Beta Release | 3 | 11 | True > Different Approach | 3 | 11 | > Ottawa Does Not Heart Hip-Hop | 3 | 11 | > > (2) A featured column by category and only allow category_feature equal > to the number of categories. > > Is SQL the way to go (and how - ideas), or should I use python for the > heavy lifting? Are you saying that you have two featured columns? One column for category features and the other for article feature? If I understand you correctly, Item 1 can be achieved nicely with partial indexes. for example, if you only want to allow one row in the entire table to have "feature"= true: CREATE INDEX Only_one_row_true ON Your_table ( featured ) WHERE featured = true; Or if you want to only allow 1 featured article per catagory then: CREATE INDEX Only_one_row_true_per_catagory ON Your_table ( catigories, featured ) WHERE featured = true; This will ensure that the sum( featured = true ) <= sum( unique( catagories )). Regards, Richard Broersma Jr.
В списке pgsql-sql по дате отправления: